我基本上是一名java開發人員,但我的客戶在perl中給了我一個小任務。任務是我將得到xml輸入,我需要搜索一個元素並打印它的值(在String變量中保存值)。例如在下面的XML我想讀取FileName標記的值。按名稱搜索XML元素值Perl
<ConnectHome SchemaVersion="1.0.8">
<TransType>0090</TransType>
<Node>
<ExternalFiles>
<FileName>some file name</FileName>
</ExternalFiles>
</Node>
</ConnectHome>
我正在使用XML:簡單的庫來解析XML。而且我也可以使用下面的代碼讀取元素的值。
$xmlSimple = new XML::Simple(KeepRoot => 1);
$dataXML = $xmlSimple->XMLin("RepeatedElement.xml");
my $fileNameValue = $dataXML->{ConnectHome}->{Node}->{ExternalFiles}->{FileName};
但我的客戶想要使用元素名稱搜索值,因爲路徑可能會在xml中更改。
"FileName"
而不是硬編碼路徑。
所以我的問題是如何通過元素的名稱而不是硬編碼路徑獲取值?有沒有一種按名稱搜索元素的方法?我將在字符串變量中傳遞元素的名稱。
你勢必'XML :: Simple'?另一個圖書館會容易得多。 – 2015-02-12 06:34:19
不,我不拘一格。我也爲其他圖書館開放。你能建議一些圖書館來實現這個目標嗎?我也使用JSON庫並將此xml轉換爲json。我可以使用JSON庫嗎? – Neeraj 2015-02-12 07:00:46
與另外兩家圖書館一起發佈了一個解決方案。我自己並沒有做過多的XML→JSON轉換,但應該可以使用'XML :: Twig'。我對'XML :: LibXML'不太確定,但也可能會彈出其他答案。 – 2015-02-12 07:45:20