这是我要返回的xml,需要解析。我需要提取的数据是CategoryMapping节点的属性'id'和'oldID'。
<GetCategoryMappingsResponse
xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2017-05-26T13:51:34.492Z</Timestamp>
<Ack>Success</Ack>
<Version>989</Version>
<Build>E989_CORE_API_18131074_R1</Build>
<CategoryMapping id="183872" oldID="43010"/>
<CategoryMapping id="183322" oldID="20483"/>
<CategoryMapping id="1290" oldID="43014"/>
<CategoryMapping id="183888" oldID="43015"/>
<CategoryMapping id="48718" oldID="43016"/>
<CategoryMapping id="183051" oldID="45064"/>
...
<CategoryMapping id="183174" oldID="83983"/>
<CategoryMapping id="184437" oldID="15"/>
<CategoryMapping id="183185" oldID="83984"/>
<CategoryVersion>117</CategoryVersion>
</GetCategoryMappingsResponse>
这是我尝试过的perl但它没有返回所有数据
foreach $key (keys $data->{CategoryMapping}) {
print "($rownum) id=$key ";
my %new_hash = %{$data->{CategoryMapping}{$key}};
foreach $key2 (keys %new_hash) {
print "$key2=$new_hash{$key2}<br/>";
}
}
答案 0 :(得分:-1)
foreach my $key(keys $data->{'CategoryMapping'}) {
print "ID = $key oldID = $data->{'CategoryMapping'}->{$key}->{'oldID'}\n";
}
答案 1 :(得分:-1)
对于任何询问如何使用XML::Simple
做某事的问题,只有一个正确的答案,那就是如果你重视自己的生活和理智,就不得不尝试
模块自己的文档建议不要使用它,如果你忽略了这样的所有警告,那么没有人会想要对当天负责,也许不是今天,也许不是明天,但很快,它崩溃和烧伤在你的头上,因为有人为其中一个元素添加了一个属性
请阅读Why is XML::Simple
“Discouraged”?。如果你发现自己不同意那里的内容,那么你需要组建一个隐士组XML::Simple
用户,他们担心成功比他们担心模块本身更多