转储XML :: LibXML元素

vla*_*sch 3 perl xml-libxml

我想转储xml doc树,类似于转储perl数据类型的方式。

use Data::Dumper;
print Dumper($foo);
Run Code Online (Sandbox Code Playgroud)

递归地转储包含的结构$foo(即使存在循环依赖性)。

然而

use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc    = $parser->parse_file($filename);
my @nodes  = $doc->findnodes($path);
foreach(@nodes)
{
    print Dumper($_);
}
Run Code Online (Sandbox Code Playgroud)

只是打印像

$VAR1 = bless( do{\(my $o = 46232224)}, 'XML::LibXML::Element' );
Run Code Online (Sandbox Code Playgroud)

我想得到一棵LibXML树-代表XML结构的元素。

el.*_*ado 5

您可以使用以下serialize方法LibXML::Node

use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc    = $parser->parse_file($filename);
my @nodes  = $doc->findnodes($path);
foreach my $node (@nodes)
{
    print $node->serialize;
}
Run Code Online (Sandbox Code Playgroud)