Perl XML::Simple 输出嵌套节点
Perl XML::Simple output nested node
作为我的输入
$XML = {'node1' => {'node2' => {'node3' => {'node4'}}}};
然后我生成输出 xml
print(XMLout($XML, KeepRoot => 1));
然后我得到
<node1>
<node2 name="node3" node4="" />
</node1>
如何将其作为输出
<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>
perl -MXML::Simple -e '$XML = {"n1" => {"n2" => [{"n3" => [{"n4"=>[{}]}]}]}};
print(XMLout($XML, KeepRoot=>1));'
给予
<n1>
<n2>
<n3>
<n4></n4>
</n3>
</n2>
</n1>
不鼓励使用 XML::Simple。 https://metacpan.org/pod/XML::Simple
XML::Simple 实际上并不易于使用。你最好选择 XML::LibXML.
下面是一个示例,展示了如何找到数据结构的外观。
use warnings;
use strict;
use XML::Simple;
use Data::Dumper;
my $sample =
"<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>";
my $xs = XML::Simple->new(ForceArray => 1, KeepRoot => 1);
my $ref = $xs->XMLin($sample);
print "\n---------------\n", Dumper($ref), "\n--------------\n";
my $xml = $xs->XMLout($ref);
print "\n----------------\n";
print $xml;
Data::Dumper 的输出显示了数据结构。
---------------
$VAR1 = {
'node1' => [
{
'node2' => [
{
'node3' => [
{
'node4' => [
{}
]
}
]
}
]
}
]
};
--------------
----------------
<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>
如果没有 ForceArray,它看起来就像您收到的输出。
作为我的输入
$XML = {'node1' => {'node2' => {'node3' => {'node4'}}}};
然后我生成输出 xml
print(XMLout($XML, KeepRoot => 1));
然后我得到
<node1>
<node2 name="node3" node4="" />
</node1>
如何将其作为输出
<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>
perl -MXML::Simple -e '$XML = {"n1" => {"n2" => [{"n3" => [{"n4"=>[{}]}]}]}};
print(XMLout($XML, KeepRoot=>1));'
给予
<n1>
<n2>
<n3>
<n4></n4>
</n3>
</n2>
</n1>
不鼓励使用 XML::Simple。 https://metacpan.org/pod/XML::Simple
XML::Simple 实际上并不易于使用。你最好选择 XML::LibXML.
下面是一个示例,展示了如何找到数据结构的外观。
use warnings;
use strict;
use XML::Simple;
use Data::Dumper;
my $sample =
"<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>";
my $xs = XML::Simple->new(ForceArray => 1, KeepRoot => 1);
my $ref = $xs->XMLin($sample);
print "\n---------------\n", Dumper($ref), "\n--------------\n";
my $xml = $xs->XMLout($ref);
print "\n----------------\n";
print $xml;
Data::Dumper 的输出显示了数据结构。
---------------
$VAR1 = {
'node1' => [
{
'node2' => [
{
'node3' => [
{
'node4' => [
{}
]
}
]
}
]
}
]
};
--------------
----------------
<node1>
<node2>
<node3>
<node4></node4>
</node3>
</node2>
</node1>
如果没有 ForceArray,它看起来就像您收到的输出。