xmlpull解释xml

原创 2012年03月27日 23:47:08

一、创建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;
 }
}

相关文章推荐

详解android解析Xml的三种方式——DOM、SAX以及XMLpull

今天学习了android解析Xml的三种方式——DOM、SAX以及XMLpull,这里对它们进行总结。 如果理解有误,欢迎指正   ^_* 一、DOM方式解析: xml是先把xml文...

Android解析Xml的三种方式:DOM、SAX以及XMLPull

一、DOM方式解析: xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据。这个实现起来很简单,但是很消耗内存。当数据过大,手机不够强劲,手机可能直接死机。 ...

轻松使用xmlpull创建xml

package com.xmlpull; import java.io.File; import java.io.FileOutputStream; import org.kxml2.i...

轻松使用xmlpull解析xml

在上文中介绍了使用sax方式解析xml,这里介绍下在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环...

使用Xmlpull解析xml

转自:http://www.blogjava.net/sxyx2008 在上文中介绍了使用sax方式解析xml,这里介绍下在Android中极力推荐的xmlpull方式解析xml。xmlpull...

Android--使用XMLPull解析xml

在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。...

java 操作xml--> xmlpull

转入java快一年时间了,还没有用java处理过xml。正好非开发的同事有个xml需要处理,也顺便学习下 需求:将value属性的值全部换成name属性的值 jar包下载地址: 1.xmlpull_1...

android应用中使用xmlpull解析xml文档失败

本人刚入门android 在看黎活明老师的android视频做一资讯客户端案例,使用android应用从web应用程序中获取xml数据再进解析成资讯实体,基本上按照视频上的操作可是我的应用就是失败了...

xmlpull解析XML

转自:http://www.blogjava.net/sxyx2008/archive/2010/08/04/327885.html xmlpull不仅仅可以使用在Android上,同样也适用于ja...

xmlpull读取xml文件

1:weather.xml     20'C/30'C   多云   南风3级   上海   200       20'C/35'C   暴雨   南风10级   北京...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xmlpull解释xml
举报原因:
原因补充:

(最多只允许输入30个字)