在Perl中使用XML :: Twig时,方法“parent”也返回子项(不需要)

时间:2012-06-17 11:57:41

标签: perl parent perl-module xml-twig ancestor

我需要在input.xml的第一个元素

中显示“父”

此外,我必须显示父母的身份证明

这是我的脚本Perl:C:\ lng> C:\ lng \ uniq.pl

输出显示不幸的是子节点:

 <source id="berlin"> 
   <target id="karlsruhe" method="delete"/> 
   <target id="Stuttgart4" method="delete"/>
</source>

预期输出为:

<source id="berlin"> 

请帮忙。

这是uniq.pl:

#!/usr/bin/perl -w
use warnings;
use XML::Twig;
my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;

$t-> parsefile ('input.xml');
$v= $t->first_elt('[@method]');

$w= $v->parent;
$w->print;

输入文件:input.xml

<Germany>
 <airport id1="1">
  <plane id="3">
   <source id="berlin">
     <target id="karlsruhe" method="delete"/>
     <target id="Stuttgart4" method="delete"/>
   </source>
  </plane>
 </airport>
</Germany>

1 个答案:

答案 0 :(得分:5)

当你在元素上调用print时,它会打印从开始标记到结束标记的元素,即整个元素,包括所有子元素及其后代。

您只想使用start_tag方法开始标记:

print $w->start_tag;