使用Perl中的XML :: XPath模块获取节点值
发布时间:2020-12-15 22:06:02 所属栏目:大数据 来源:网络整理
导读:我使用下面的代码从 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-getN
我使用下面的代码从
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> 我不想要这个完整的节点名称和值字符串.我只想要节点值. 解决方法
getNodeValue适用于
attribute个节点.对于
elements,您需要string_value方法:
foreach my $node ($nodeset->get_nodelist) { print $node->string_value."n"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |