lwi*_*ono 3 xml linux svn perl libxml2
我试图使用LibXML从XML读取标签.我可以打印所有标签; 但是,由于某种原因,它还会打印"text"标签,这不是我的XML的一部分.任何人都可以向我解释是什么导致这种行为?有什么工作吗?如果下次我有一个带有"text"标签的XML标签,那么如何将该"text"标签与LibXML生成的额外"text"标签区分开来?
这是我的XML文件:
<?xml version="1.0"?>
<log>
<logentry
revision="935">
<author>darwin</author>
<date>2011-06-28T01:00:18.997106Z</date>
<msg>reintegrate branch</msg>
</logentry>
<logentry
revision="931">
<author>darwin</author>
<date>2011-06-21T22:15:01.881607Z</date>
<msg>reintegrate branch</msg>
</logentry>
</log>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码阅读XML:
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string($svnInfo);
my $root = $doc->getDocumentElement();
my @nodes=$root->childNodes();
foreach my $child(@nodes) {
my $name = $child -> nodeName();
my @atts = $child -> getAttributes();
print "\n${name} (";
print ")\n";
}
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
text ()
logentry ()
text ()
logentry ()
text ()
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
因为在last </logentry>和the 之间只有一个空白文本节点(包含换行符)</log>.另请注意第一个text(),它对应于<log>第一个之间的换行文本节点<logentry>.