我在这里有一个相当愚蠢的时刻。问题是,这是一个愚蠢的两天的时刻,不知道谁知道perl,我在这里搞砸了。考虑下面的代码:
use strict;
use warnings;
use XML::LibXML;
my $filename = 'f:proxml156115610024.xml';
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($filename);
for my $line ($doc->findnodes('Document/Page/Lines')) {
for my $property ($line->findnodes('/Document/Page/Lines/OCRCharacters')) {
print $property->textContent();
}
}
我正在尝试打印OCRCharacters内容。以下是xml文件的概要:
<Document>
<Page>
<Lines>
<NumberOfLines>21</NumberOfLines>
<LineNumber>1</LineNumber>
<OCRCharacters>Test ocr in XML</OCRCharacters>
<LineNumber>2</LineNumber>
<OCRCharacters>This is the 2nd line</OCRCharacters>
</Lines>
</Page>
</Document>
我已经在这里搜索了我的问题的答案,但我显然错过了一些非常基本的东西。如果你有解决方案和时间,请回来。非常感谢
$line->findnodes('/Document/Page/Lines/OCRCharacters')
应该$line->findnodes('OCRCharacters')
use strict;
use warnings;
use XML::LibXML qw( );
my $parser = XML::LibXML->new();
my $doc = $parser->parse_fh(*DATA);
for my $line ($doc->findnodes('/Document/Page/Lines')) {
for my $property ($line->findnodes('OCRCharacters')) {
print $property->textContent(), "n";
}
}
__DATA__
<Document>
<Page>
<Lines>
<NumberOfLines>21</NumberOfLines>
<LineNumber>1</LineNumber>
<OCRCharacters>Test ocr in XML</OCRCharacters>
<LineNumber>2</LineNumber>
<OCRCharacters>This is the 2nd line</OCRCharacters>
</Lines>
</Page>
</Document>
输出:Test ocr in XML
This is the 2nd line