我需要在Perl中的特定节点的XML文件中添加几行.因此,我需要搜索特定节点,然后添加这些行.你会为此推荐哪种解析器?
我推荐XML :: Twig.它可以修改某个名称的所有元素,也可以只修改一个元素.它有很好的文档,包括教程......模块作者总是随叫随到:)
这是一个简单的例子,它将一些文本附加到名为"article"的所有元素:
use strict;
use warnings;
use XML::Twig;
my $xmlStr = <<XML;
<foo>
<article>ME ME ME</article>
<article>HE HE</article>
<particle>ME TOO</particle>
</foo>
XML
my $twig= XML::Twig->new(
twig_handlers => { article => \&article }
);
$twig->parse($xmlStr);
$twig->print();
print "\n";
exit;
sub article {
my ($twig, $art) = @_;
my $stuff = $art->text(); # get the text of article
$stuff .= ' YOU YOU YOU';
$art->set_text($stuff);
}
Run Code Online (Sandbox Code Playgroud)