これはばかげた質問に違いありませんが、私は少し立ち往生しています:
私はあなたがここでサンプルを見ることができるXMLファイルを持っています:
<?xml version="1.0" encoding="utf-16"?>
<!DOCTYPE tmx SYSTEM "56.dtd">
<body>
<tu changedate="20130625T175037Z"">
<tuv xml:lang="pt-pt">
<prop type="x-context-pre"><seg>Some text.</seg></prop>
<prop type="x-context-post"><seg>Other text.</seg></prop>
<seg>The text I'm interested.</seg>
</tuv>
<tuv xml:lang="it">
<seg>And it's translation in italian.</seg>
</tuv>
</tu>
.... followed by other <tu>'s
</body>
巨大なファイルなので、XML::Twig を使用して解析し、関心のある部分を取得しています。特に、seg のノード コンテンツと tu のノード属性に関心があります。
これまでに得たコードは次のとおりです。
use 5.010;
use strict;
use warnings;
use XML::Twig;
my $filename = 'filename.tmx';
my $out_filename = 'out.xml';
open my $out, '>', $out_filename;
binmode $out;
my $original_twig = new XML::Twig (pretty_print => 'nsgmls', twig_handlers => {tu => \&original_tu});
$original_twig->parsefile($filename);
sub original_tu {
my($twig, $original_tu) = @_;
my $original_seg = $original_tu-> first_child('./tuv/seg')->text;
}
Perl (または XML::Twig と言うべきか) は、私が持っていることを教えてくれます: 間違ったナビゲーション条件 './tuv/seg' ()
seg ノードのテキストにアクセスする方法を知っている人はいますか? まだ私にうんざりしていなければ、tu のノードの changedate 属性にアクセスする方法を教えてください。
どうもありがとうございました。
ダセン