私はそれを正しく使用していないと確信しています、私のコード:
#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
XML::Twig->new( pretty_print => 'indented',
twig_handlers => { '//Item[@PartNumber]' => \&_pitem
},
)->parsefile_inplace( 'order2.xml', '.bak' );
sub _pitem {
$_->set_text(...) if (....);
}
XMLにそのXPath式に一致する要素がない場合、XMLは空であることが判明したようです...ファイルを切り捨てます。私の望ましい動作は次のとおりです。一致する要素がない場合は、XMLの編集をまったく避けてください。