我的XML看起來是這樣的:如何導航XML所有標籤包括屬性
<Servers type="Container">
<Server type="Category">
<HostName type="Property">dmitri-spB</HostName>
<HostIPAddress type="Property">14.341.516.564</HostIPAddress>
在這個數據中最案件,我不需要的屬性 - 或者至少我只見過在我可能需要的數據中有一個案例。在任何情況下...如果XML是這樣的:
<Servers>
<Server>
<HostName>dmitri-spB</HostName>
<HostIPAddress>14.341.516.564</HostIPAddress>
...我會做這樣的事情:
my $parser = XML::LibXML -> new();
my $tree = $parser -> parse_file ($source_dir."\\".$xmlfiles);
for my $Servers ($tree->findnodes ('/Servers')) {
foreach my $Server ($Servers->findnodes('./Server')) {
$hostname = $Server->findvalue('HostName');
$hostIP = $Server->findvalue('HostIPAddress');
}
}
我試圖在字面上使用整個標籤使用同樣的方法代碼,並得到了「XPath錯誤:無效的表達式」。
因此,確實存在兩個問題 - 當我不關心屬性時如何瀏覽和提取,以及如何在屬性顯着時執行此操作?也許這是一個XPath問題,但我根本無法將XPath文檔與我正在嘗試做的事情聯繫起來。建議?
一個
type
屬性是什麼XPath表達式給你「的XPath錯誤:無效的表達式」所有Server
節點? –你是否嘗試運行上面顯示的示例代碼?它可能工作得很好。 – mirod