DOM方式进行XML文件解析
<update>
<version>2</version>
<name>baidu_xinwen_1.1.0</name>
<url>http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk</url>
</update>
-
-
-
package com.xx.xxxx.Utils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.InputStream;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
/**
* DOM方式进行XML文件解析
* Created by LXL on 2017/2/21.
*/
public class ParseXmlService {
// <update>
// <version>2</version>
// <name>baidu_xinwen_1.1.0</name>
// <url>http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk</url>
// </update>
// 通过parseXml()方法,我们可以获取服务器上应用的版本、文件名以及下载地址。
public HashMap<String, String> parseXml(InputStream inStream) throws Exception {
HashMap<String, String> hashMap = new HashMap<String, String>();
// 实例化一个文档构建器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 通过文档构建器工厂获取一个文档构建器
DocumentBuilder builder = factory.newDocumentBuilder();
// 通过文档通过文档构建器构建一个文档实例
Document document = builder.parse(inStream);
//获取XML文件根节点
Element root = document.getDocumentElement();
//获得所有子节点
NodeList childNodes = root.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
//遍历子节点
Node childNode = (Node) childNodes.item(j);
if (childNode.getNodeType() == Node.ELEMENT_NODE) {
Element childElement = (Element) childNode;
//版本号
if ("version".equals(childElement.getNodeName())) {
hashMap.put("version", childElement.getFirstChild().getNodeValue());
}
//软件名称
else if (("name".equals(childElement.getNodeName()))) {
hashMap.put("name", childElement.getFirstChild().getNodeValue());
}
//下载地址
else if (("url".equals(childElement.getNodeName()))) {
hashMap.put("url", childElement.getFirstChild().getNodeValue());
}
}
}
return hashMap;
}
}