LINUX.ORG.RU

[perl][xml] XML::Twig - как добраться до глубоко вложенных тегов?

 ,


0

1

Что-то никак не вкурю.

Допустим есть такой xml:

<root>
    <alpha>
        <beta>1</beta>
        <beta>
            <gamma>2</gamma>
        </beta>
        <beta>3</beta>
    </alpha>
</root>

Хотелось бы положить все <beta>, которые не содержат вложенных тегов (1 и 3) в массив @beta, а все <gamma> в массив @gamma.

И как?

use XML::Twig;

my $twig = XML::Twig->new;
$twig->parsefile('file.xml');
my $root = $twig->root;

my $alpha = $root->first_child('alpha'); 

А дальше как?

my @beta = $alpha->children('beta') утащит в массив всё подряд.

А для того, чтобы до гаммы добратся, что делать?

★★★★★

Последнее исправление: Hoodoo (всего исправлений: 2)

Если есть возможность указать XPath, то следующие выражения должны помочь:

@beta = //beta[not(*)]
@gamma = //gamma

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.