1

我需要从 input.xml 的第一个元素中显示“父级”

我还必须显示来自父母的 id

这是我的脚本 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>
4

1 回答 1

5

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

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

print $w->start_tag;
于 2012-06-17T12:32:58.107 回答