我有一個XML文件,我想讀取它 - 刪除節點 - 保存它。 我請從終端(perl的script.pl)perl - 從xml文件中刪除節點
例如XML(filename.xml中)的Perl:
<?xml version="1.0" encoding="UTF-8"?>
<twice>
<inner>
<twice>
<name>John</name>
<surname>Smith</surname>
</twice>
<twice>
<name>Alan</name>
<surname>Bowler</surname>
</twice>
<twice>
<name>Michael</name>
<surname>Deck</surname>
</twice>
</inner>
</twice>
示例perl腳本(script.pl):
use strict;
use warnings;
use XML::LibXML;
my $filename = "filename.xml";
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);
for my $dead ($xmldoc->findnodes(q{/twice/inner/twice[surname = "Bowler"]})) {
$dead->unbindNode;
}
print $xmldoc->toString;
現在它輸出終端中的預期結果,但不保存文件。
預期結果(filename.xml中):
<?xml version="1.0" encoding="UTF-8"?>
<twice>
<inner>
<twice>
<name>John</name>
<surname>Smith</surname>
</twice>
<twice>
<name>Michael</name>
<surname>Deck</surname>
</twice>
</inner>
</twice>
...我已經尋找好幾個小時,如果它是一個重複找不到任何東西,對不起!
這是我第一次與perl的經驗,所以請任何幫助將受到歡迎,謝謝。
這是奇數,它去掉了鮑勒紀錄給我。或者你的意思是它打印到終端罰款,但不保存filename.xml? – Nate 2013-03-05 03:22:34
確切地說,它不保存文件 – dimmageiras 2013-03-05 03:29:58