我想使用LibXML從XML讀取標記。我可以打印所有標籤;然而,由於某些原因,它還會打印不屬於我的XML的「文本」標籤。任何人都可以向我解釋導致此行爲的原因?任何工作?如果下一次我有一個帶有「text」標籤的XML標籤,那麼我怎麼能從LibXML生成的額外的「text」標籤中區分出「text」標籤?Perl LibXML打印額外的「文本」標記
這是我的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>
我用下面的代碼讀取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";
}
這是我的輸出:
text()
logentry()
text()
logentry()
text()
感謝您的幫助。
給我一個錯誤:「找不到auto/XML/LibXML/no_blanks.al」。 我使用的是perl 5.8.8,也許該函數不包含在庫中。 – lwijono
愚蠢的我,那是古老的。嘗試反過來(並參見編輯),'$ parser-> keep_blanks(0);' – mrk
太棒了,讓它可以使用:「$ parser-> keep_blanks(0)」。 謝謝! – lwijono