<root>
<tb1>
<Area>东城区 </Area>
<Area>西城区</Area>
<Area>崇文区</Area>
<Area>宣武区</Area>
<Area>朝阳区</Area>
</tb1>
<tb2>
<Area>和平区</Area>
<Area>河东区</Area>
<Area>河西区</Area>
<Area>南开区</Area>
<Area>河北区</Area>
<Area>红桥区</Area>
</tb2>
</root>
xml如上所示 想通过节点<tb1>解析<tb1>下的所有<Area>的值,求方法。。。。
------解决方案--------------------------------------------------------
xml:
- Java code
<?xml version="1.0" encoding="UTF-8"?><root> <tb1> <Area>东城区 </Area> <Area>西城区</Area> <Area>崇文区</Area> <Area>宣武区</Area> <Area>朝阳区</Area> </tb1> <tb2> <Area>和平区</Area> <Area>河东区</Area> <Area>河西区</Area> <Area>南开区</Area> <Area>河北区</Area> <Area>红桥区</Area> </tb2></root>
------解决方案--------------------------------------------------------
关于xml数据的解析,如果数据太大那就会很麻烦。。不过如果只是几M的话还是没问题的。。不说了。。说一下,关于你的问题。。
//存放每一个节点中获取的数据
private Map map=new Map();
File f=new File("市区.xml");
//定义工厂 API,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//定义 API, 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document doc。
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
//按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
NodeList nl = doc.getElementsByTagName("tb1");
//遍历每一个nodelist对象
for (int i=0;i<nl.getLength();i++){
//主要为了获取节点数量
NodeList n2 = doc.getElementsByTagName("Area");
//存放一个节点中的所有数据
ArrayList<String> a=new ArrayList<String>();
for (int j=0;j<n2.getLength();j++)
{
a.add(doc.getElementsByTagName("tb1").item(j).getFirstChild().getNodeValue());
}
map.add(a);
}
}catch(Exception e){
e.printStackTrace();
}