我的 XML 文件如下所示:
<eLinkResult>
<LinkSet>
<DbFrom>nuccore</DbFrom>
<IdList>
<Id>133909243</Id>
</IdList>
<LinkSetDb>
<DbTo>taxonomy</DbTo>
<LinkName>nuccore_taxonomy</LinkName>
<Link>
<Id>417290</Id>
</Link>
<Link>
<Id>417289</Id>
</Link>
<Link>
<Id>405948</Id>
</Link>
</LinkSetDb>
</LinkSet>
</eLinkResult>
我正在寻找所有<Id>
信息,如果有这样的信息,我知道如何提取<Id>
:
my $test="Some URL;
my $Result = get ($test);
my $Data = $Parser->XMLin($Result);
my $x=0;
if (exists($Data->{LinkSet}{LinkSetDb}->[0]->{Link}{Id})) {
$TaxId=$Data->{LinkSet}{LinkSetDb}{Link}->[0]->{Id};
要不就
if (exists($Data->{LinkSet}{LinkSetDb}{Link}{Id})) {
$TaxId=$Data->{LinkSet}{LinkSetDb}{Link}{Id};
}
但是,当我尝试使用上面的 XML 文件时,我得到Not a HASH reference
我也试过
foreach (@{$Data->{LinkSet}{LinkSetDb}{Link}{Id}}) {
Print $_;
}
但是我仍然得到一个错误,有没有办法让我可以在<Id>
不指定我想要哪个的情况下获得所有?