【问题标题】:Replacing XML nodes using perl and Mojo::DOM使用 perl 和 Mojo::DOM 替换 XML 节点
【发布时间】:2015-08-18 00:03:07
【问题描述】:

我想使用Mojo::DOM 在 XML 文件中交换节点。 我很确定这是可能的,但我还没有找到方法。

给定以下 XML:

my $xml = q~
<html>
    <div>
        <p>1</p>
        <p>2</p>
        <img />
    </div>
</html>
~;

我想删除 div 并插入一个 body 标签,这样结果看起来像这样:

my $xml = q~
<html>
    <body>
        <p>1</p>
        <p>2</p>
        <img />
    </body>
</html>
~;

想过replace,但是没有找到replace是被替换标签的$dom的例子。

【问题讨论】:

    标签: perl mojolicious


    【解决方案1】:

    很简单,只要找到&lt;div&gt;元素,使用tag方法改变它的标签

    这个程序演示。 CSS 选择器 html &gt; div 找到(第一个)&lt;div&gt; 元素,它是 &lt;html&gt; 元素的子元素

    use strict;
    use warnings;
    
    use Mojo::DOM;
    
    my $xml = q~
    <html>
        <div>
            <p>1</p>
            <p>2</p>
            <img />
        </div>
    </html>
    ~;
    
    my $dom = Mojo::DOM->new($xml);
    
    $dom->at('html > div')->tag('body');
    
    print $dom, "\n";
    

    输出

        <html>
            <body>
                <p>1</p>
                <p>2</p>
                <img>
            </body>
        </html>
    

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2018-03-25
      相关资源
      最近更新 更多