用perl插入XML字符串到节点

我有以下XML作为在变量$ myXML的字符串,并需要将其插入内部根 - >分组用perl插入XML字符串到节点

<mydata seq="ee"> 

<subdata name="bla" value="bla" />

</mydata>

上面的XML需要内部根被插入 - >分组

<root> 

<grouping>

</grouping>

</root>

我目前使用的XML ::嫩枝因此,最好,如果你使用能帮助我,

编辑: 我正在处理驻留在文件中的复杂< root>结构。我需要一种方法将< root> xml加载到perl中,并将我的xml字符串作为节点插入。同样在我的情况下,<分组>内部已经有一些节点。

回答:

这是我会怎么做:我会从XML中$myXML创建一个元素,然后将其添加为grouping最后一个子:

#!/usr/bin/perl 

use strict;

use warnings;

use XML::Twig;

my $myXML='<mydata seq="ee"><subdata name="bla" value="bla" /></mydata>';

my $t= XML::Twig->new(twig_handlers => { grouping => sub { grouping($myXML, @_); }, })

->parsefile("so_insert.xml");

$t->print;

exit;

sub grouping

{ my($xml, $t, $grouping)= @_;

my $new_elt= XML::Twig::Elt->parse($xml);

$new_elt->paste(last_child => $grouping);

}

回答:

我错过了什么吗?

$myXML = '<root><grouping>' . $myXML . '</grouping></root>'; 

回答:

使用树枝处理程序在查看分组标记时插入内容。

假设你的root /分组数据为:

#!/usr/bin/perl 

use strict;

use warnings;

use XML::Twig;

my $myXML = <<'EOT';

<mydata seq="ee">

<subdata name="bla" value="bla" />

</mydata>

EOT

my $xml = XML::Twig->new(

pretty_print => 'indented',

twig_handlers => {

grouping => sub { $_->set_text($myXML)->set_asis; }

});

$xml->parsefile("foo.xml") or die "Failed parse of foo.xml: [email protected]\n";

$xml->print;

以上是 用perl插入XML字符串到节点 的全部内容, 来源链接: utcz.com/qa/265005.html

回到顶部