我想使用Perl解析
XML文件.我可以使用
XML :: Simple模块来做,但现在我想开始使用XML :: XPath模块,因为它使用XPath表达式.从我有限的知识,我认为XPath将使未来的解析更容易,对吧?
以下是我到目前为止的Perl代码:
以下是我到目前为止的Perl代码:
use strict; use warnings; use XML::XPath; my $file = "data.xml"; my $path = XML::XPath->new(filename => $file); my $name = $path->find('/category/event/@name'); print $name."\n";
我的问题是如何分离每个名称属性(类别/事件/ @名称),以便我可以对我解析的每个值执行测试.目前我只是得到一个充满解析数据的大字符串,而我想要几个可以测试的小字符串.我该怎么做?谢谢 :-)
解决方法
This review指出,
XML::XPath
自2003年以来没有更新,并建议
XML::LibXML
use 5.010; use strict; use warnings; use XML::LibXML; my $dom = XML::LibXML->new->parse_file('data.xml'); for my $node ($dom->findnodes('/category/event/@name')) { say $node->toString; }