首先得到:得到 DOM 解析器的工厂实例 DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
然后从 DOM 工厂获得DOM解析器
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
3 )把要解析的 XML 文档转化为输入流,以便 DOM 解析器解析它
InputStream is= new FileInputStream("test1.xml");
( 4 )解析XML文档的输入流,得到一个Document
Document doc=dombuilder.parse(is);
( 5 )得到XML文档的根节点
Element root=doc.getDocumentElement();
( 6 )得到节点的子节点
NodeList books=root.getChildNodes();
Parsexmlservices.java:
package hdp.xunwei.fans.xmlParser;
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,该对象将创建DocumentBuilder。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//创建DocumentBuilder,DocumentBuilder将实际进行解析以创建Document对象
DocumentBuilder builder = factory.newDocumentBuilder();
//解析该文件以创建Document对象
Document document = builder.parse(inStream);
//获取XML文件根节点
Element root = document.getDocumentElement();
//获得所有子节点
NodeList childNodes = root.getChildNodes();
for(int i = 0; i < childNodes.getLength(); i++) {
Node childNode = (Node) childNodes.item(i);
if(childNode.getNodeType() == Node.ELEMENT_NODE) {
Element childElement = (Element) childNode;
//版本号
if("versioncode".equals(childElement.getNodeName())) {
hashMap.put("versioncode", 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()); //xlh
}
}
}
return hashMap;
}
}
通过Uri获取网络xml:
GetDataFromServer.java
package hdp.li.fans.Utils;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public abstract class GetDataFromServer {
public final static InputStream getData(String url)
{
try{
URL uri = new URL(url);
URLConnection connection=uri.openConnection();
connection.connect();
InputStream inputStream=connection.getInputStream();
return inputStream;
}catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
<data>
<versioncode>3</versioncode>
<name>hdpfans</name>
<url>
http://android.guozitv.com/api/upload/guoziTv_2.0.apk
</url>
<details>模块修改</details>
</data>