我正在处理一个XML文件,它基本上包含一个嵌套元素数组,每个元素都有许多嵌套属性:
<Export land_name="tx">
<Area>
<Location name="foo"
square_feet="10,000"
highway="I-35"/>
<Location name="dog"
square_feet="20,000"
highway="I-45"/>
</Area>
</Export>
我的目标是解析出属性(square_feet、highway、name)并将它们输出到 .csv 文件中。我正在使用 XML::Simple,但我越用它,就越觉得我使用了错误的包。我的主要问题是什么控制结构最好用于解析嵌套的属性?我一直被引用不存在的哈希引用或数组引用所困扰。以下是我目前的代码:
use warnings;
use XML::Simple;
use Data::Dumper;
my $in = "XML_in.xml";
my $xml = XML::Simple->new(KeyAttr => [], ForceArray => [Device], KeepRoot => 1 );
my $Inv = $xml->XMLin($in);
print $Inv->{Export}->{Area}->{Location}->[0]->{name};
如果我的代码存在错误,是因为使用了不正确的
KeyAttr
、ForceArray
或 keeproot
吗?