输入文件:SN.xml
<?xml version='1.0'?>
<root>
<category cname='Cname1' id='c1'>
<subcat key='3' sname='Subname1' sid='sid1'>
<prod key='1' pname='Productname'>value1</prod>
</subcat>
</category>
</root>
我正在使用这些代码将XML文件转换为哈希。
my $config = XML::Simple->new();
$config = XMLin('SN.xml');
print Dumper($config);
我的输出低于输出:
'3' => {
'sid' => 'sid1',
'sname' => 'Subname1',
'prod' => {
'content' => 'value1',
'pname' => 'Productname',
'key' => '1'
}
},
我希望得到以下输出,请帮我搞定..
'3' => {
'sid' => 'sid1',
'sname' => 'Subname1',
'prod' => {
'1' => {
'pname' => 'Productname',
'content' =>'value1'
},
}
},
请建议我提供此结果的任何其他模块..
提前致谢!
答案 0 :(得分:4)
my $xs = XML::Simple->new( ForceArray => 1 );
my $config = $xs->XMLin('SN.xml');
print Dumper $config;
即使只有一个嵌套元素,ForceArray
选项也会强制嵌套元素放入arrayrefs中。这允许默认的KeyAttr
选项启动并识别您的“关键”属性。