2

我不知道如何显示一个元素的祖先或自我。

这是我在使用方法祖先_or_self() 时收到的错误消息: Can't call method "print" without a package or object reference at xxxx

#!/usr/bin/perl -w
use warnings;
use XML::Twig;

my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;

$v= $t->first_elt('[@id]');
$v->print;
print ("\n\n");
$v->ancestors_or_self->print;

感谢您对 Perl XML::Twig 的帮助

4

2 回答 2

2

ancestors_or_self返回一个列表——假设你想要元素的路径,你也不->path需要->print. 作为->path 返回路径,您将必须执行以下操作:

#!/usr/bin/perl -w
use warnings;
use XML::Twig;

my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;

$v= $t->first_elt('[@id]');
print $v->path . "\n";
print ("\n\n");
print $_->path . "\n" foreach $v->ancestors_or_self;
于 2012-06-16T03:07:35.110 回答
2

那是因为ancestors_or_self返回一个列表,你不能调用列表的方法。改用这个:

$_->print for $v->ancestors_or_self; 
于 2012-06-15T10:46:46.660 回答