我有一个XML文件,我想读它 - 删除一个节点 - 保存它.我从终端运行perl(perl script.pl)
示例XML(filename.xml):
<?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>
Run Code Online (Sandbox Code Playgroud)
示例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;
Run Code Online (Sandbox Code Playgroud)
现在它在终端输出预期结果,但不保存文件.
预期结果(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>
Run Code Online (Sandbox Code Playgroud)
我搜索了好几个小时,找不到任何东西,对不起,如果它是重复的!
这是我第一次体验perl,所以请欢迎任何帮助,谢谢.