3

输入文件: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'
                                                      },
                                                 }
             },

请向我推荐任何其他产生此结果的模块..

提前致谢!

4

1 回答 1

4
my $xs = XML::Simple->new( ForceArray => 1 );
my $config = $xs->XMLin('SN.xml');
print Dumper $config;

ForceArray即使只有一个嵌套元素,该选项也会强制将嵌套元素放入 arrayrefs。这允许默认KeyAttr选项启动并识别您的“关键”属性。

于 2013-11-15T08:23:06.103 回答