现状: 我目前使用XML :: LibXML从XML中提取数据。我将它与XML元素的Xpath结合起来,我可以读取和替换XML中的大部分值。但是,我似乎无法访问XML的第一个标签中的特定数据。这是一个相当重要的领域,但我尝试了一些方法,仍然无法操纵该领域。使用Perl通过Xpath从XML中提取数据
XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test **date_time="201111031006"** xsi:noNamespaceSchemaLocation="test.xsd">
<msg_ver>0001</msg_ver>
<sender_id>john</sender_id>
<recipient_id>mike</recipient_id>
</test>
我试图访问DATE_TIME场(粗体),但我似乎无法做到这一点。我复制XPath并尝试以及它不会工作。我实际上可以更改字段等等,但我无法更改date_time字段。我甚至无法从现场提取数据,更不用说改变它。使用相同的功能,我可以读取,提取并保存对字段的更改。
我的代码
sub CHANGE_DATE()
{
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/tradenet/@date_time"; ## this is the actual XPATH
my($node) = $doc->findnodes($query);
$node->setData("$date");
$doc->toFile($newfile);
感谢您提前考虑一下通过这个时候..
谢谢你的提示。我对错别字表示歉意,因为我必须在分类时编辑原始XML文档。因此,XPATH名称的错误。再次感谢。 – 2012-04-27 07:33:53