Arrays 带嵌套数组的Perl XML::Simple

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> <

我正在使用perl和XML::Simple来打印XML文件的内容。 然而,XML文件的结构阻止我列出所有条目,因为我找不到正确的方法来循环嵌套数组。有人能帮我看看怎么做吗

XML结构类似于:

<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";
}