XMLが仕様に準拠していないため、パーサーはそのまま処理できません。主な問題点は以下のとおりです。
- XMLはそう
Item
がitem
- 終了タグが
- をバックスラッシュではないトップレベルの要素
があるはず、スラッシュで始めるよりも、何か他のもので、大文字と小文字が区別されますこれらの問題を修正すると、このコードは動作します:
use strict; use warnings;
use XML::Twig;
my $data = <<END_DATA;
<items>
<item>
<data1> data1 </data1>
<data2> data2 </data2>
</item>
<item>
<data1> data1 </data1>
<data2> data2 </data2>
</item>
</items>
END_DATA
my $t = XML::Twig->new(
twig_handlers => {
'item' => sub {
# process each item and print contents of dataN elements
print
$_->first_child_trimmed_text('data1'), "\t",
$_->first_child_trimmed_text('data2'),"\n";
},
},
)->parse($data);
出典
2011-08-01 19:23:34
bvr
これは整形式XMLではないため、同等ではありませんXMLパーサーによってsed。 「<\element>」を「」に変更しても問題ありません。 http://search.cpan.org/~mirod/XML-Twig-3.38/Twig.pmを読んだ後、何を試しましたか? – RedGrittyBrick
-1がXMLではないと主張するため-1。 – tadmc