【发布时间】:2017-05-26 15:43:11
【问题描述】:
这是我返回的需要解析的 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/>";
}
}
【问题讨论】:
-
您如何称呼 XML::Simple?您排除了一些可能很重要的代码。
-
"这是我返回的需要解析的 xml" 如果你返回它,那么你已经有了数据,不需要解析什么你刚刚创建?
-
请您缩进您的 XML 数据和 Perl 代码,以便那些免费回答您问题的人可以阅读。另请阅读 How to Edit 以帮助您确保正确使用 Markdown。
-
我已经清理了你的 Markdown 并修复了你的缩进。不客气,但下次请自己做。
标签: xml perl xml-parsing