我知道如何使用SAX解析器解析XML。我的XML是这样的:
-<address_component>
<long_name>Chambers St</long_name>
<short_name>Chambers St</short_name>
<type>route</type>
</address_component>
-<address_component>
<long_name>Downtown</long_name>
<short_name>Downtown</short_name>
<type>neighborhood</type>
<type>political</type>
</address_component>
我的问题:当XML有两个同名的标签时,比如这种情况下的'type',我的代码只获取最后一个标签的值。在这种情况下,'type'变为“政治”,它会跳过“邻居”。
我该如何处理?
答案 0 :(得分:2)
听起来您的代码并非设计用于处理多个type
元素,因此它只会保存它遇到的最后一个元素。这是您的代码的限制(您没有显示)。您需要重新编写代码以接受多个type
元素,例如将遇到的每个type
存储到String[]
数组而不是单个String
变量中。
答案 1 :(得分:0)
XPath可能(不确定)。看看这个(这是python的,但它足够通用):How to make XPath select multiple table elements with identical id attributes?
答案 2 :(得分:0)
考虑到你确实使用SAX解析器,你的回调(startElement / endElement等)应该为两个'type'元素触发。也许,如果您可以发布一些代码,问题就会变得更加明显。