我是这样的XML文件:
cars.xml
<root>
<brand>
<make i="1" n="Ford">
<veh i="1" n="106">
</veh>
<veh i="2" n="107">
</veh>
<veh i="3" n="206">
</veh>
</make>
<make i="2" n="GMC">
<veh i="1" n="C3">
</veh>
<veh i="2" n="C4">
</veh>
<veh i="3" n="C5">
</veh>
</make>
<make i="3" n="MERCEDES">
<veh i="1" n="CLS">
</veh>
<veh i="2" n="SLS">
</veh>
<veh i="3" n="CLK">
</veh>
</make>
</brand>
</root>
然后我用XML :: Twig编写了我的perl代码,我想在数组中添加所有属性&#34; n&#34; &#34; make&#34;元素......换句话说,我会形成一个由(福特,GMC,梅赛德斯)组成的阵列
我有一个简单的代码:但是没有工作蚂蚁我没有在doc中调用哪种方法。
init.pl
use strict;
use warnings;
use XML::Twig;
my $file = "cars.xml";
my $twig = new XML::Twig;
$twig -> parsefile($file);
$twig -> set_pretty_print('indented');
my $xml_root = $twig -> root;
my $xml_brand = $xml_root -> first_child('brand');
my $make_attribute = $xml_make -> att('n');
print $make_attribute . "\n";
有人可以帮我吗? 提前致谢
答案 0 :(得分:0)
这将按您的意愿执行 - 使用get_xpath
(findnodes
的同义词)获取所有make
元素,然后使用map
检索{{1属性
n
输出:
#!/usr/bin/perl
use strict;
use warnings;
use XML::Twig;
use Data::Dumper;
my $twig = XML::Twig -> new -> parsefile("cars.xml");
my @array_of_makes = map { $_ -> att('n') } $twig -> get_xpath('//make');
print Dumper \@array_of_makes;