這個問題遍佈互聯網,但我看到的所有示例都沒有考慮到我顯然獨特的情況。這裏是我的XML摘錄:如何使用PERL腳本過濾掉XML中的節點
<message type="error" from="Realtime" timestamp="Mon Nov 24 19:28:55 2014"> Could not receive from Loader </message>
<message type="warning" from="Dcd_Mux" timestamp="Mon Dec 1 02:31:18 2014"> Could not connect to Dcd </message>
而不是有幾個層次的節點,我只是在消息節點上有幾個屬性。我希望能夠根據我的Perl腳本的參數過濾掉節點。例如:如果我想過濾掉type =「error」的所有消息,並且我使用的是隻包含上面兩行的XML,那麼我的輸出將只是上面的警告消息。這裏顯示輸出:
<message type="warning" from="Dcd_Mux" timestamp="Mon Dec 1 02:31:18 2014"> Could not connect to Dcd </message>
我需要如何開始打開XML,通過整個事情循環,並刪除具有符合我的篩選器屬性的任何節點的一些方向。我有興趣使用LibXML來完成這件事。
我不清楚自己需要什麼。例如,'perl logview.pl -type =「error」'應該發生什麼?你說它應該*「用'type =」error「'」*刪除所有消息,但是從什麼?你有一個你想編輯的靜態XML數據文件嗎? – Borodin 2015-03-13 21:05:47
@Borodin我編輯了這個問題。我並不關心這些論據,但是要回答你的評論......是的,腳本直接訪問要解析/過濾的文件。 – 2015-03-13 21:39:13