【问题标题】:Removing Tag and its parent from an XML using perl使用 perl 从 XML 中删除 Tag 及其父级
【发布时间】:2013-09-17 18:00:02
【问题描述】:

您好,我正在编写一个 perl 脚本,该脚本将从 XML 中删除一个节点。我使用下面的帖子开发了脚本。

perl - remove node from xml file

但是一旦节点被删除,它就会将父节点留空,并且读取 XML 的应用程序不喜欢它。意思是应用程序不理解带有空格的标签。所以我想用空格删除父节点。

来自下面的 XML

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

我的脚本能够删除节点“两次”,但在节点“内部”留下空格

结果:

<twice>
    <inner>

   </inner>
</twice>

但我想删除节点“内部”以及它的父节点而不带空格。

预期结果:

<twice>
</twice>

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

【问题讨论】:

  • 哦,来吧!只需更改 XPath 查询以选择父节点! (我不会给你结果,因为这真的微不足道,只需要交换两个字符......)

标签: xml perl nodes


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多