Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perlxml::DOM解析器的用法_Xml_Perl_Dom_Xml Parsing - Fatal编程技术网

perlxml::DOM解析器的用法

perlxml::DOM解析器的用法,xml,perl,dom,xml-parsing,Xml,Perl,Dom,Xml Parsing,我正在尝试获取此XML文件第五行中的错误数: <summary> <result usecase="CRUD" target="AppHost"> <testcase size="1" cvus="1"> <sequence tps="0.25" totaltx="1" name="CRUD" min="3515" max="3515" errors="0" average="3515.0"> <nod

我正在尝试获取此XML文件第五行中的错误数:

<summary>
  <result usecase="CRUD" target="AppHost">
    <testcase size="1" cvus="1">
      <sequence tps="0.25" totaltx="1" name="CRUD" min="3515" max="3515" errors="0" average="3515.0">
        <node tps="0.25" totaltx="1" name="localhost" min="3515" max="3515" errors="0" average="3515.0">
            […]
        </node>
      </sequence>
    </testcase>
  </result>
</summary>
但我得到的不是只打印“结果”,而是:

#text
result
#text
要获得第五行中“node”节点的参数,我想使用
getFirstChild
方法,但我不能,因为它查找“#text”的子级

这个文本对象是什么?我应该怎么做才能到达第五个节点

谢谢,

凯文

试试:

#!/usr/bin/perl

use XML::DOM;
use XML::Parser;

$file = "test.xml";

my $parser = new XML::DOM::Parser;
my $doc = $parser->parsefile($file);

print $doc->getElementsByTagName('node')->item(0)->getAttributeNode('errors')->getFirstChild->getNodeValue;
print "\n";

DOM是非标准的。你应该改用。
#!/usr/bin/perl

use XML::DOM;
use XML::Parser;

$file = "test.xml";

my $parser = new XML::DOM::Parser;
my $doc = $parser->parsefile($file);

print $doc->getElementsByTagName('node')->item(0)->getAttributeNode('errors')->getFirstChild->getNodeValue;
print "\n";