小编kum*_*mar的帖子

列出document元素的所有子节点

我有一个非常庞大的XML文件,我想列出文档元素的所有子节点.我正在使用下面的代码工作正常,但它需要很长时间来处理文件,它也从文档元素获取数据,这是不需要的:

use XML::Simple;
my $xml = XML::Simple->new();
my $d = $xml->XMLin("sample.xml");
my @arr = keys %$d;
print "@arr\n";
Run Code Online (Sandbox Code Playgroud)

示例XML:

    <?xml version="1.0" encoding="ISO-8859-15"?>
<document version="1.0" createdAt="2017-03-31T11:41:34">
   <TITLE>Computer Parts</TITLE>
   <PART001>
      <ITEM>Motherboard</ITEM>
      <MANUFACTURER>ASUS</MANUFACTURER>
      <MODEL>P3B-F</MODEL>
      <COST> 123.00</COST>
   </PART001>
   <PART002>
      <ITEM>Video Card</ITEM>
      <MANUFACTURER>ATI</MANUFACTURER>
      <MODEL>All-in-Wonder Pro</MODEL>
      <COST> 160.00</COST>
   </PART002>
   <PART003>
      <ITEM>Sound Card</ITEM>
      <MANUFACTURER>Creative Labs</MANUFACTURER>
      <MODEL>Sound Blaster Live</MODEL>
      <COST> 80.00</COST>
   </PART003>
   <PART004>
      <ITEM>14 inch Monitor</ITEM>
      <MANUFACTURER>LG Electronics</MANUFACTURER>
      <MODEL> 995E</MODEL>
      <COST> 290.00</COST>
   </PART004>
</document>
Run Code Online (Sandbox Code Playgroud)

预期产出:TITLE,PART001,PART002,PART003,PART004

任何人都可以建议更快更好的方法来获得所需的输出?

xml perl perl-module

5
推荐指数
2
解决办法
492
查看次数

标签 统计

perl ×1

perl-module ×1

xml ×1