使用perl从XML中删除Tag及其父级

时间:2013-09-17 18:00:03

标签: xml perl nodes

您好我正在研究一个可以从XML中删除节点的perl脚本。我使用下面的帖子开发了脚本。

perl - remove node from xml file

但是一旦移除了节点,它就会将父节点留空,而读取XML的应用程序并不喜欢它。含义应用程序不理解带空格的标记。所以我想删除父节点以及空格。

来自以下XML

<twice>
    <inner>
        <twice>
            <name>John</name>
            <surname>Smith</surname>
        </twice>
   </inner>
</twice>

我的脚本能够删除节点'两次',但留下节点'inner'的空格

结果:

<twice>
    <inner>

   </inner>
</twice>

但我想删除节点'inner'以及它的父节点没有空格。

预期结果:

<twice>
</twice>
PS:我不是perl的专家,所以请忽略我的错误。

1 个答案:

答案 0 :(得分:0)

我知道,LibXML是正确的方法,但我也喜欢正则表达式: - )

$s =~ s!<inner>.*?</inner>!!gis;