用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