我正在尝试解析一些处理位置的XML。以下是XML的示例。
<location>
<city lat="51.5078" lng="-0.128" displayName="London">
<country displayName="UK"/>
</city>
<metroArea lat="51.5078" lng="-0.128" displayName="London" id="24426">
<country displayName="UK"/>
</metroArea>
</location>
<location>
<city lat="42.9833" lng="-81.25" displayName="London">
<country displayName="Canada"/>
<state displayName="ON"/>
</city>
<metroArea lat="42.9833" lng="-81.25" displayName="London" id="27374">
<country displayName="Canada"/>
<state displayName="ON"/>
</metroArea>
</location>
在上述XML伦敦,英国没有州,但加拿大的伦敦也有。解析时的结果是
如何跳过“州”标签以获得以下结果?
这是我正在使用的Java代码。
private void addCitiesToHashmap(List<HashMap<String, String>> menuItems, String xml)
{
XMLParser parser = new XMLParser();
Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_METRO_AREA);
for (int i = 0; i < nl.getLength(); i++)
{
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
map.put(KEY_ID, e.getAttribute(KEY_ID));
NodeList nl3 = doc.getElementsByTagName(KEY_CITY);
{
Element g = (Element) nl3.item(i);
map.put(KEY_DISPLAY_NAME , g.getAttribute(KEY_DISPLAY_NAME ));
}
NodeList nl4 = doc.getElementsByTagName(KEY_COUNTRY);
{
Element h = (Element) nl4.item(i);
map.put(KEY_DISPLAY_NAME_4 + "3" , h.getAttribute(KEY_DISPLAY_NAME_4 ));
}
NodeList nl2 = doc.getElementsByTagName(KEY_STATE);
{
Element f = (Element) nl2.item(i);
if (f != null)
map.put(KEY_DISPLAY_NAME_2 + "2" , f.getAttribute(KEY_DISPLAY_NAME_2 ));
menuItems.add(map);
}
}
答案 0 :(得分:0)
根据您的需求定义,为了从第一条记录中“跳过”状态字段,您可以将Substring()
方法与IndexOf(',')
结合使用,以便找到逗号的位置并删除以下部分