-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 に答える