我还是新手XML::Twig
。
从主程序中我寻找具有属性的元素@method="create"
在子例程player
中,我想找到下一个带有属性的元素/兄弟@method="modify"
。
这两种方法都在子程序player
中失败并出现错误Can't call method "gi" on an undefined value
my $modif1=$valeur->next_sibling('[@method="modify"]')
my $modif2=$valeur->next_elt('[@method="modify"]')->parent
input.xwo 示例:
<top id="World">
<middle id="France" method="create">
</middle>
<middle id="Germany" method="modify">
</middle>
</top>
我的简单代码:
#!/bin/perl -w
use warnings;
use XML::Twig;
my $twig= new XML::Twig(
twig_handlers => {
'[@method="create"]' => \&player
}
);
$twig->parsefile("input.xwo");
$twig->purge;
sub player {
my ($twig, $valeur) = @_;
my $modif1 = $valeur->next_sibling('[@method="modify"]');
my $modif2 = $valeur->next_elt('[@method="modify"]')->parent;
print "\nnextELT=" . $modif->gi . "\n";
}