如何使用 xml::twig 返回整个 xml 标记并将其保存到数组:
例如 :
my @array=();
my $twig = XML::Twig->new(
twig_handlers => {
'data'=> sub {push @array, $_->xml_string;}
});
此代码返回所有嵌套标签,但没有标签本身及其属性,是否可以选择使用 xml::twig 返回整个标签并将其保存到变量?
使用 XML::Twigs 方法sprint
而不是xml_string
. 文档说:
xml_string @optional_options
Equivalent to $elt->sprint( 1), returns the string for the entire element, excluding the element's tags (but nested element tags are present)
搜索该sprint
函数会产生:
短跑
Return the text of the whole document associated with the twig. To be used only AFTER the parse.
因此,您可以执行以下操作:
use strict;
use warnings;
use Data::Dumper;
use XML::Twig;
my @array=();
my $twig = XML::Twig->new(
twig_handlers => {
'data'=> sub {push @array, $_->sprint;}
});
$twig->parse(qq~
<xml>
<data id="foo">
<deep>
<deeper>the deepest</deeper>
</deep>
</data>
</xml>
~);
print Dumper \@array;
哪个打印:
$VAR1 = [
'<data id="foo"><deep><deeper>the deepest</deeper></deep></data>'
];