android_document解析

来源:互联网 发布:最新网民数据 编辑:程序博客网 时间:2024/05/16 08:54

1.用到之前android_sax,HttpUtils工具类

2.User.java

package com.dom.xml;public class User {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}public User() {// TODO Auto-generated constructor stub}}

3.DomParseService.java

package com.dom.xml;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class DomParseService {public DomParseService() {// TODO Auto-generated constructor stub}public List<User> getUsers(InputStream inputStream) throws Exception{List<User> list=new ArrayList<User>();DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();Document document=documentBuilder.parse(inputStream);Element element=document.getDocumentElement();//获得元素节点NodeList userNodes=element.getElementsByTagName("user");//从user这个节点开始遍历//循环该节点下的所有子节点for(int i=0; i<userNodes.getLength();i++){Element userElement=(Element) userNodes.item(i);//取出该节的的元素User user=new User();user.setId(Integer.parseInt(userElement.getAttribute("id")));NodeList childNodes=userElement.getChildNodes();//取子节点for(int j=0; j<childNodes.getLength();j++){if(childNodes.item(j).getNodeType()==Node.ELEMENT_NODE){if("name".equals(childNodes.item(j).getNodeName())){user.setName(childNodes.item(j).getFirstChild().getNodeValue());}else if("age".equals(childNodes.item(j).getNodeName())){user.setAge(Integer.parseInt(childNodes.item(j).getFirstChild().getNodeValue()));}}}list.add(user);}return list;}/** * @param args * @throws Exception  */public static void main(String[] args) throws Exception {String path="http://192.168.2.104:8080/mp3/users.xml";InputStream inputStream=HttpUtils.getXML(path);DomParseService dom=new DomParseService();List<User> users=dom.getUsers(inputStream);for(User user:users){System.out.println(user.toString());}}}



0 0