Вот обработчик, который показывает способ проверки дочерних элементов cov/item
узлов:
sub item {
my ($t, $item) = @_;
my @kids = $item->children;
for my $kid ( @kids ) {
warn "valo is: " . $kid->text if $kid->name eq q{valo};
warn "valtr is: " . $kid->text if $kid->name eq q{valtr};
}
}
Другой подход заключается в использовании findnodes( )
и XPath-подобного синтаксиса Twig для определения местоположения элементов:
my $t = XML::Twig->new->parse( $fileContent );
for my $node ( $t->findnodes( '//valo' ) ) {
warn "valo is: " . $node->text;
}
... Или для полного синтаксиса XPath используйте XML :: Twig :: XPath вместо:
my $t = XML::Twig::XPath->new->parse( $fileContent );
for my $node ( $t->findnodes( '//valo | //valtr' ) ) {
warn "valo is: " . $node->text if $node->name eq q{valo};
warn "valtr is: " . $node->text if $node->name eq q{valtr};
}
Подробнее см. XML::Twig
документы из методов, используемых здесь.