我有以下 XML 格式,其中有 100 个项目,如下所示
我想解析它并提取 data1 和 data2 我怎么能用XML::Twig Perl 模块做到这一点
<Item>
<data1> <data3> date </data3> </data1>
<data2> data2 </data2>
</Item>
<Item>
<data1> <date3> data22 </data3> </data1>
<data2> data2 </data2>
</Item>
....
您的 XML 不符合规范,因此没有解析器可以按原样处理它。主要问题是:
Item
除此之外的其他内容也是如此item
解决这些问题,此代码有效:
use strict; use warnings;
use XML::Twig;
my $data = <<END_DATA;
<items>
<item>
<data1> data1 </data1>
<data2> data2 </data2>
</item>
<item>
<data1> data1 </data1>
<data2> data2 </data2>
</item>
</items>
END_DATA
my $t = XML::Twig->new(
twig_handlers => {
'item' => sub {
# process each item and print contents of dataN elements
print
$_->first_child_trimmed_text('data1'), "\t",
$_->first_child_trimmed_text('data2'),"\n";
},
},
)->parse($data);