-1

是否可以使用 perl 脚本从这样的 XML 文件中仅获取数据(战争、欧洲、第一等)并将它们存储在 .txt 文件中?

<Node id="93" /> 
  war 
  <Node id="102" /> 
  Europe 
  <Node id="112" /> 
  first 
  <Node id="117" /> 
  <Node id="118" /> 
  world
  <Node id="120" /> 
  <Node id="121" /> 
  country 
  <Node id="126" /> 
  fire
  <Node id="132" /> 
  <Node id="135" /> 
  The 
  <Node id="139" /> 
  Government
  <Node id="144" /> 
  has greeted 
  <Node id="157" /> 
  King
  <Node id="159" /> 
  <Node id="160" /> 
4

3 回答 3

1

您可以使用XML::LibXML

use XML::LibXML qw();
my $dom = XML::LibXML->load_xml(string => <<'XML');
<root>
  <Node id="93" />
  war
  <Node id="102" />
  Europe
  <Node id="112" />
  first
  <Node id="117" />
  <Node id="118" />
  world
  <Node id="120" />
  <Node id="121" />
  country
  <Node id="126" />
  fire
  <Node id="132" />
  <Node id="135" />
  The
  <Node id="139" />
  Government
  <Node id="144" />
  has greeted
  <Node id="157" />
  King
  <Node id="159" />
  <Node id="160" />
</root>
XML

print $dom->textContent;
于 2012-05-25T11:15:18.993 回答
0

使用XML::XSH2

open 1.xml ;
echo (/) ;
于 2012-05-25T12:37:37.997 回答
0

您可以使用XML::Simple。看起来你想要的只是内容部分。

use strict;
use warnings;
use XML::Simple;
my $xml = qq~<root>
<Node id="93" /> 
  war 
  <Node id="102" /> 
  Europe 
  <Node id="112" /> 
  first 
  <Node id="117" /> 
  <Node id="118" /> 
  world
  <Node id="120" /> 
  <Node id="121" /> 
  country 
  <Node id="126" /> 
  fire
  <Node id="132" /> 
  <Node id="135" /> 
  The 
  <Node id="139" /> 
  Government
  <Node id="144" /> 
  has greeted 
  <Node id="157" /> 
  King
  <Node id="159" /> 
  <Node id="160" />
</root>
~;

my $ref = XMLin($xml);
open $out, '>', 'output.txt' or die "Could not open output file";
print $out join "\n", map {s/\s{2,}//g;$_} @{$ref->{'content'}};
close $out;

您也可以使用其他 XML 模块。

于 2012-05-25T11:14:16.357 回答