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

lau*_*ngu 1 perl perl-module parent ancestor xml-twig

我需要从input.xml的第一个Element中显示"parent"

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

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

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

 <source id="berlin"> 
   <target id="karlsruhe" method="delete"/> 
   <target id="Stuttgart4" method="delete"/>
</source>
Run Code Online (Sandbox Code Playgroud)

预期的产出是:

<source id="berlin"> 
Run Code Online (Sandbox Code Playgroud)

请帮忙.

这是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;
Run Code Online (Sandbox Code Playgroud)

输入文件: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>
Run Code Online (Sandbox Code Playgroud)

mir*_*rod 5

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

你想要的只是开始标记,使用start_tag方法:

print $w->start_tag;
Run Code Online (Sandbox Code Playgroud)