112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | package com.novelbook.android.upgrade; | ||
|  | 
 | ||
|  | 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(); | ||
|  | 		for (int j = 0; j < childNodes.getLength(); j++) | ||
|  | 		{ | ||
|  | 			//遍历子节点 | ||
|  | 			Node childNode = childNodes.item(j); | ||
|  | 
 | ||
|  | 
 | ||
|  | 			if (childNode.getNodeType() == Node.ELEMENT_NODE){ | ||
|  | 				Element childElement = (Element) childNode; | ||
|  | 				hashMap.put(childElement.getNodeName(),childElement.getFirstChild().getNodeValue()); | ||
|  | 			} | ||
|  | 			/*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()); | ||
|  | 				} | ||
|  | 				else if (("details".equals(childElement.getNodeName()))) | ||
|  | 				{ | ||
|  | 					hashMap.put("details",childElement.getFirstChild().getNodeValue()); | ||
|  | 				} | ||
|  | 			}*/ | ||
|  | 		} | ||
|  | 		return hashMap; | ||
|  | 	} | ||
|  | 	public HashMap<String, HashMap<String,String>> parseMultiXml(InputStream inStream) throws Exception | ||
|  | 	{ | ||
|  | 		HashMap<String, HashMap<String,String>> hashMap = new HashMap<String, 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 = childNodes.item(j); | ||
|  | 			if (childNode.getNodeType() == Node.ELEMENT_NODE){ | ||
|  | 				Element childElement = (Element) childNode; | ||
|  | 				hashMap.put(childElement.getNodeName(),parseChildXml(childNode.getChildNodes())); | ||
|  | 			} | ||
|  | 
 | ||
|  | 		} | ||
|  | 		return hashMap; | ||
|  | 	} | ||
|  | 	public HashMap<String, String> parseChildXml(NodeList childNodes ) throws Exception { | ||
|  | 		HashMap<String, String> hashMap = new HashMap<String, String>(); | ||
|  | 		for (int j = 0; j < childNodes.getLength(); j++) { | ||
|  | 			//遍历子节点 | ||
|  | 			Node childNode = childNodes.item(j); | ||
|  | 			if (childNode.getNodeType() == Node.ELEMENT_NODE) { | ||
|  | 				Element childElement = (Element) childNode; | ||
|  | 				hashMap.put(childElement.getNodeName(), childElement.getFirstChild().getNodeValue()); | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return hashMap; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | } |