我想使用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>
~;
我考虑过替换,但我没有找到替换是替换标签的$ dom的示例。
答案 0 :(得分:1)
找到<div>
元素并使用tag
方法更改其标记非常简单
该程序演示。 CSS选择器html > div
找到<div>
元素的{first} <html>
元素
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>