【发布时间】:2016-10-07 09:11:22
【问题描述】:
这是我的 XML 数据
<categories>
<category id="Id001" name="Abcd">
<project> ID_1234</project>
<project> ID_5678</project>
</category>
<category id="Id002" name="efgh">
<project> ID_6756</project>
<project> ID_4356</project>
</category>
</categories>
我需要根据包含<category> 元素的name 属性获取每个<project> 元素的文本内容。
我将 Perl 与 XML::LibXML 模块一起使用。
例如,给定类别名称Abcd,我应该得到列表ID_1234、ID_5678。
这是我的代码
my $parser = XML::LibXML->new;
$doc = $parser->parse_file( "/cctest/categories.xml" );
my @nodes = $doc->findnodes( '/categories/category' );
foreach my $cat ( @nodes ) {
my @catn = $cat->findvalue('@name');
}
这给了我数组@catn 中的类别名称。但是如何获取每个项目的文本值呢?
【问题讨论】:
-
你使用的是哪个解析器?
-
嗨,我正在使用 XML::LibXML 来解析 xml 文件。
-
您具体寻求什么输出?代码方面,你已经拥有了什么?
-
请包含您已经编写的代码并说明您遇到的困难。您可以通过edit 链接edit 您的问题。有关如何使用该网站的更多信息,请参阅How to Ask。
-
我的 $parser = XML::LibXML->new; $doc = $parser->parse_file("/cctest/categories.xml");我的@nodes = $doc->findnodes('/categories/category'); foreach 我的 $cat(@nodes){
标签: perl xml-parsing