以DOM方式解析XML
一、准备工作
1.DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
2.DocumentBuilder db = dbf.newDocumentBuilder();
3.Document document = db.parse(“filePath+fileName”);//此处有多个重载,可依据情况选择
二、开始解析 包含在 try {} catch{}块中
4.NodeList firstLevelNodeList = document.getElementsByTagName(“NodeName”);//解析起点
5.for (int i = 0; i< firstLevelNodeList.getLength(); i++) { //遍历
Node firstLevelNode = firstLevelNodeListt.item(i); //每次获取一个节点对象
NamedNodeMap attrList = firstLevelNode.getAttributes(); //获取节点的属性集合
for (int j = 0; j < attrList.getLength(); j++) { //遍历属性集合
Node attr = attrList.item(j); //每次获取一个属性节点
System.out.println(attr.getNodeName() + ” = ” + attr.getNodeValue()); //属性节点的名字和值
NodeList childNodeList =firstLevelNode.getChildNodes(); //获取节点的子节点集合
for (int k = 0; k < childNodeList.getLength(); k++) { //遍历子节点
if (childNodeList.item(k).getNodeType() == Node.ELEMENT_NODE) { //判断子节点的节点类型,从而进行不同操作
System.out.print(childNodeList.item(k).getNodeName() + ” = “); //子节点的名字
System.out.println(childNodeList.item(k).getFirstChild().getNodeValue()); //子节点的值
}}}
需要注意的是子节点的节点类型和取值方式。