我在 Window 7 机器上使用 Perl 进行编码。我可以使用下面的 XPath 代码从 XML 中提取数据
use strict;
use warning;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/tradenet/message/header/unique_ref_no/date/text( )";
my($node) = $doc->findnodes($query);
$node->setData("$file_seq_number");
但是,当我在不同的 XML 上使用相同的代码时,第二个文档的 xpath 如下所示:
/TradenetResponse/OutboundMessage/out:OutwardPermit/out:Declaration/out:Header/cac:UniqueReferenceNumber/cbc:SequenceNumeric
连同 Perl 代码,提取代码如下所示:
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/TradenetResponse/OutboundMessage/out:OutwardPermit/out:Declaration/out:Header/cac:UniqueReferenceNumber/cbc:SequenceNumeric/text( )";
my($node) = $doc->findnodes($query);
$node->setData("$file_seq_number");
使用第二个代码,我无法从第二个 XML 中检索数据。我收到此错误“无法在 Perl.pl 第 5 行的未定义值上调用方法“setData””。
第二个 XPATH 地址中的“:”字符会影响代码吗?