Arrays 带嵌套数组的Perl XML::Simple
我正在使用perl和XML::Simple来打印XML文件的内容。 然而,XML文件的结构阻止我列出所有条目,因为我找不到正确的方法来循环嵌套数组。有人能帮我看看怎么做吗 XML结构类似于:Arrays 带嵌套数组的Perl XML::Simple,arrays,xml,perl,nested,Arrays,Xml,Perl,Nested,我正在使用perl和XML::Simple来打印XML文件的内容。 然而,XML文件的结构阻止我列出所有条目,因为我找不到正确的方法来循环嵌套数组。有人能帮我看看怎么做吗 XML结构类似于: <header> <rows> <row> <elem>a</elem> <elem>b</elem> <elem>c</elem> </row> <
<header>
<rows>
<row>
<elem>a</elem>
<elem>b</elem>
<elem>c</elem>
</row>
<row>
<elem>d</elem>
<elem>e</elem>
<elem>f</elem>
</row>
</rows>
</header>
我可以使用
print "$main->{rows}->{row}->[0]->{elem}[0]\n";
for (@{$main->{rows}{row}}) {
print "$_->{elem}[0] \n";
}
并使用
print "$main->{rows}->{row}->[0]->{elem}[0]\n";
for (@{$main->{rows}{row}}) {
print "$_->{elem}[0] \n";
}
这会打印出来
a
d
但是我如何打印这个:
a;b;c;
d;e;f;
谢谢你的回答。首先,我非常喜欢XML::Twig
作为一个好的、易于使用的替代品。(XML::LibXML
也不错,但有一点学习曲线):
print join ';', @{ $_->{elem} }, "\n";
印刷品:
a;b;c
d;e;f
(为了清晰起见,展开环:
foreach my $row ( $xml -> get_xpath('//row') ) {
foreach my $elem ( $row -> children ( 'elem' ) ) {
print $elem -> text, ";";
}
print "\n";
}
首先,我非常喜欢XML::Twig
作为一个好的、易于使用的替代品。(XML::LibXML
也不错,但有一点学习曲线):
印刷品:
a;b;c
d;e;f
(为了清晰起见,展开环:
foreach my $row ( $xml -> get_xpath('//row') ) {
foreach my $elem ( $row -> children ( 'elem' ) ) {
print $elem -> text, ";";
}
print "\n";
}