我正在使用下面的代码从 XML 文件中获取节点的值:
use XML::XPath;
use XML::XPath::XMLParser;
my $pt1 = XML::XPath->new(filename => 'test1.xml');
my $nodeset = $pt1->find('/file1/table/tname');
foreach my $node ($nodeset->get_nodelist)
{
print $node->getNodeValue."\n";
}
'test1.xml' 的内容如下:
<file1>
<table>
<tname>_sys_ident</tname>
<ttype>regular</ttype>
<col>
<name>_sys_ident_asp</name>
<type>varchar(16)</type>
<fkey>_sys_asp</fkey>
<attr>PRIMARY KEY</attr>
</col>
</table>
</file1>
我想打印tname的值(即_sys_ident)。但是上面的代码没有打印任何东西。
如果我在 for 循环中使用以下内容:
print XML::XPath::XMLParser::as_string($node);
然后,它给出以下输出:
<tname>_sys_ident_asp</tname>
我不想要这个完整的节点名称和值字符串。我只想要节点值。 这是我第一次尝试 XML 和 XPath。请告诉我我做错了什么。