关闭

xmlpull解释xml

364人阅读 评论(0) 收藏 举报

一、创建xml

<?xml version="1.0" encoding="UTF-8"?>
<persons>
 <person id="23">
  <name>liming</name>
  <age>30</age>
 </person>
 <person id="20">
  <name>lixiangmei</name>
  <age>25</age>
 </person>
</persons>

二、创建domain

public class Person {
 private Integer id;
 private String name;
 private Short age;
 
 public Person(){}
 
 public Person(Integer id, String name, Short age) {
  this.id = id;
  this.name = name;
  this.age = age;
 }
 
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Short getAge() {
  return age;
 }
 public void setAge(Short age) {
  this.age = age;
 }
 @Override
 public String toString() {
  return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";
 }
 
}
三、创建解释类

public class PULLPersonService {

public static List<Person> getPersons(InputStream inStream) throws Throwable{
  List<Person> persons = null;
  Person person = null;
  XmlPullParser parser = Xml.newPullParser();
  parser.setInput(inStream, "UTF-8");
  int eventType = parser.getEventType();//当前取得的节点的类型
  while(eventType!=XmlPullParser.END_DOCUMENT){//如果不为document的结尾
   switch (eventType) {
   case XmlPullParser.START_DOCUMENT://document的开始
    persons = new ArrayList<Person>();
    break;
 
   case XmlPullParser.START_TAG://开始标签
    String name = parser.getName();
    if("person".equals(name)){
     person = new Person();
     person.setId(new Integer(parser.getAttributeValue(0)));
    }
    if(person!=null){
     if("name".equals(name)){
      person.setName(parser.nextText());//取得文本节点
     }
     if("age".equals(name)){
      person.setAge(new Short(parser.nextText()));
     }
    }
    break;
    
   case XmlPullParser.END_TAG://结束标签
    if("person".equals(parser.getName())){
     persons.add(person);
     person = null;
    }
    break;
   }
   eventType = parser.next();
  }
  return persons;
 }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:244781次
    • 积分:2341
    • 等级:
    • 排名:第16560名
    • 原创:28篇
    • 转载:51篇
    • 译文:0篇
    • 评论:36条
    文章分类
    最新评论