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;
}
@Override
public 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());
}
}
}