哪个Perl XML解析器可以将数据添加到特定节点?

时间:2010-01-28 19:08:56

标签: xml perl

我需要在Perl中的特定节点的XML文件中添加几行。因此,我需要搜索特定节点,然后添加这些行。你会为此推荐哪种解析器?

1 个答案:

答案 0 :(得分:5)

我建议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);
}