Xml

查詢 XML 文件的最簡單方法是什麼?

  • September 24, 2010

設想:

我在一台 AIX 機器上——實際上,有十幾台機器。我有一個將資訊輸出到 XML 文件的應用程序,不幸的是沒有換行符。我需要執行可以對這些文件進行查詢的腳本。這很簡單:如果它們是普通的日誌文件,那麼 grep 和 cut 就可以了。但是,我堅持我所擁有的。

我對 XML 所做的工作很少,而且這些都是生產 AIX 機器,所以我無法安裝隨機軟體來查看某些東西是否有效。Perl 在這些機器上,並且通過@INC for XML 向我展示了(刪節):

XML/LibXML
XML/Parser
XML/Simple
XML/SAX

使用其中一種方法來做我需要做的事情是正確的嗎?

我推薦XML::Simple。非常容易拿起並且已經安裝。

擴展 Maris(t?) 的答案,XML::Simple絕對是我最好的朋友。它非常簡單,並且適用於靜態 XML 文件。

XML::Simple 不適合 XML 流,也不適合巨大的(我們在這裡討論兆字節的倍數)XML 文件,但對於配置文件和資源文件,XML::Simple 工作得非常好。

我不會告訴你細節,因為我的連結(到 mclean.net.nz)應該是一個很好的使用入門,maris(t?) 到 CPAN 的連結會很好地讓你真正了解它的細節. 如何根據你的行為調整它,以及你能用它做什麼。

關於我經常看到的新使用者的兩個快速提示;

實例化處理程序時,添加一個 KeyAttr => 0 選項。我不明白誰在他們的正常頭腦中希望從它開始。一路走來,什麼時候明白?當然,你會使用它。直到那時?一文不值。

無論如何,第二個提示:

當一個節點可以有 0、1 或許多記錄時,ForceArray 是你最好的朋友。將您從討厭的變通方法中解救出來,例如檢查 XML 節點的大小並以兩種不同的方式對其進行操作,或者完全跳過它。將該鍵放在 ForceArray 上,使用 for/foreach 循環,將其稱為完成。

引用自:https://serverfault.com/questions/184466