下面总结一下在项目中用到的.xml文件解析类的写法,可用于解析存储在本地的xml文件或者从网络上下载到的xml文件。
import java.io.InputStream; import java.util.HashMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class ParseXmlService { 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(); // 循环put到HashMap中 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; } }
1.解析事先存放在本地Download目录下的xml:
String path = Environment.getExternalStorageDirectory()+ "/download/xxx.xml"; InputStream inStream = ClassLoader.getSystemResourceAsStream(path); ParseXmlService service = new ParseXmlService(); try { mHashMap = service.parseXml(inStream); } catch (Exception e) { e.printStackTrace(); }
2.解析Android工程目录下的xml:
InputStream inStream = ParseXmlService.class.getClassLoader().getResourceAsStream("xxx.xml"); ParseXmlService service = new ParseXmlService(); try { mHashMap = service.parseXml(inStream); } catch (Exception e) { e.printStackTrace(); }原文链接:https://www.f2er.com/xml/295852.html