如何解析具有相同标记名称的XML?

时间:2011-12-01 06:58:40

标签: xml parsing blackberry java-me sax

我知道如何使用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'变为“政治”,它会跳过“邻居”。

我该如何处理?

3 个答案:

答案 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'元素触发。也许,如果您可以发布一些代码,问题就会变得更加明显。