小编dim*_*ras的帖子

perl - 从xml文件中删除节点

我有一个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,所以请欢迎任何帮助,谢谢.

xml perl xml-parsing xml-libxml

2
推荐指数
1
解决办法
6025
查看次数

标签 统计

perl ×1

xml ×1

xml-libxml ×1

xml-parsing ×1