我有以下 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="CoreNLP-to-HTML.xsl" type="text/xsl"?>
<root>
<document>
<sentences>
<sentence id="1">
<basic-dependencies>
<dep type="nn">
<governor idx="2">Planted</governor>
<dependent idx="1">Europeans</dependent>
</dep>
</basic-dependencies>
</sentence>
</sentences>
</document>
</root>
我可以使用下面给出的代码提取内容“Europeans”。有什么方法可以使用 XML::LibXML 从标签中提取“nn”吗?
use strict;
use warnings;
use XML::LibXML qw( );
my $output = $filename.'.xml';
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($output);
for my $dependency_node ($doc->findnodes('//document/sentences/sentence/basic-dependencies'))
{
for my $dependent_node ($dependency_node->findnodes('dep'))
{
my $word = $dependent_node->findvalue('dependent/text()');
print "$word\n";
}
}
最佳答案
是的,只需将分配更改为
my $word = $dependent_node->findvalue('@type');
XPath 中的属性以 @ 符号开头。
关于perl - 使用 XML::LibXML 在 Perl 中提取 XML 标签内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16590614/