在安卓中使用DOM解析XML
嗨,我想解析XML并根据用户选择显示列表
我的xml看起来像这样
下面是我的代码
try {
XMLParser parser = new XMLParser();
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList n1 = doc.getElementsByTagName("company");
// looping through all item nodes <item>
for (int i = 0; i < n1.getLength(); i++) {
// creating new HashMap
Element e = (Element) n1.item(i);
System.out.println("name node "+parser.getValue(e, "name"));
}
通过这种方式,我得到的输出如下
Company ABC
Company XYZ
公司名单
但是
我会像这样写代码
NodeList n1 = doc.getElementsByTagName("province");
// looping through all item nodes <item>
for (int i = 0; i < n1.getLength(); i++) {
// creating new HashMap
Element e = (Element) n1.item(i);
System.out.println("name node "+parser.getValue(e, "name"));
}
我正在得到一份省名清单
Alberta
Ontario
New York
Florida
但它应该是这样工作的
当我选择ABC公司时
应仅显示两个供应列表
Alberta
Ontario
不是所有的显示器都能帮助我重写代码
# 1 楼答案
对document对象调用的getElementsBytagName将始终返回整个文档中具有给定标记名的所有节点的列表。相反,过滤掉您感兴趣的单个公司元素,然后在it上调用getElementsByTagName。例如
# 2 楼答案
请尝试使用此代码
对于(int i=0;i<;nodeList.getLength();i++{
# 3 楼答案
这应该做到:
# 4 楼答案
在“公司”节点上使用
Node.getChildNodes()
。然后,要获取子省节点,请按名称进行比较。例如:# 5 楼答案
请尝试以下代码: