0
元のテキスト文字列にしたいときにXMLの特殊文字が結果に表示される理由を理解しようとしています。ここでXML :: XPathを使用したXML特殊文字get_nodelist
は私のコードです:ここで
#!/usr/bin/perl
use strict;
use warnings;
use XML::XPath;
my $xp = XML::XPath->new(ioref => \*DATA);
my $names = $xp->find('/category/event/@name');
foreach my $node ($names->get_nodelist) {
print XML::XPath::XMLParser::as_string($node) . "\n";
}
__DATA__
<category name="a">
<event name="cat1 > cat3" />
<event name="cat2" />
<event name="cat3" />
<event name="cat4" />
<event name="cat5" />
</category>
は私の結果は以下のとおりです。
name="cat1 > cat3"
name="cat2"
name="cat3"
name="cat4"
name="cat5"
私が欲しい本です:
name="cat1 > cat3"
name="cat2"
name="cat3"
name="cat4"
name="cat5"
私はそのAPIについてはわかりませんが、ノード自体の文字列表現の代わりに '$ node-> getNodeValue()'を印刷してみてください。 –
回答ありがとうございます。私は今日、この記事をフォローアップしていないことに気づいた。何らかの理由で、XML:Xpathが非常に遅かったです。代わりに、私はXMLと最終的にXHTMLファイルをナビゲートするためにXML:Twigを使用しています。これははるかに高速で、私に必要な結果を提供します。 –