我确定我没有正确使用它,我的代码:
#!/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。