Какой анализатор Perl XML может добавлять данные в определенные узлы? - PullRequest
0 голосов
/ 28 января 2010

Мне нужно добавить несколько строк в XML-файл на определенном узле в Perl. Итак, мне нужно найти конкретный узел, а затем добавить эти строки. Какой парсер вы бы порекомендовали для этого?

1 Ответ

5 голосов
/ 28 января 2010

Я рекомендую 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);
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...