Perl XML::LibXML我哪里出错了



我在这里有一个相当愚蠢的时刻。问题是,这是一个愚蠢的两天的时刻,不知道谁知道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

最新更新