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;
 }
}

Java使用SAX,XmlPull两种方式解析XML

XML(eXtendedMarkupLanguage,可扩展的标记性语言),提供了一个跨平台、跨网络、跨程序的语言的数据描述方式,使用XML可以方便实现数据交换、系统配置等常见功能。 XML与HTM...
  • x_fei_xia
  • x_fei_xia
  • 2015年08月29日 09:38
  • 695

【Android】PULL解析XML文件

XML解析三种方式 DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据; 简单直观,但需要将文档读取到内存,并不太适合移动设备; ...
  • oYunTaoLianWu
  • oYunTaoLianWu
  • 2013年10月27日 02:08
  • 13791

Android studio 下的 XML pull解析

Android原生系统的XML解析就是用的pull解析。由此我们可以得出两个信号: 1、pull解析肯定有独特的优势,能从dom、sax解析中脱颖而出。 2、我们在使用pull解析时不需要...
  • sinat_29398599
  • sinat_29398599
  • 2016年10月11日 10:46
  • 1523

DOM、SAX、JDOM、DOM4J以及PULL在XML文件解析中的工作原理以及优缺点对比

1. DOM(Document Object Model) 文档对象模型 1. DOM是W3C指定的一套规范标准,核心是按树形结构处理数据,DOM解析器读入XML文件并在内存中建立一个结构一模一样的“...
  • SEU_Calvin
  • SEU_Calvin
  • 2016年07月25日 21:02
  • 13920

Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器。 如果我们要在Java桌面、J2ME等当中使用Pull方式生成xml文件和解析x...
  • bear_huangzhen
  • bear_huangzhen
  • 2015年06月19日 01:03
  • 3596

XML概述以及Pull解析详解

XML概述以及Pull解析详解 ONE Goal ,ONE Passion ! 做Android开发最多的都是json.而且解析xml都用Xstream,慢慢地xml的手动解析都快忘记了.概述:XML...
  • fengltxx
  • fengltxx
  • 2016年06月26日 20:07
  • 1572

java中解析xml文件的五种常见方法:DOM4J,dom,pull,SAX,Jdom

package com.zhidi.dom4jtest; import java.io.File; import java.util.ArrayList; import java.uti...
  • Javalzh1992_
  • Javalzh1992_
  • 2016年11月12日 14:31
  • 391

Android之PULL解析XML

今天我们一起通过一个小例子来学习一下使用PULL解析器解析XML文件。 (1)首先我们放一个文件名为beauties.xml的XML文件到assets目录下,文件内容如下: ...
  • bear_huangzhen
  • bear_huangzhen
  • 2014年04月29日 10:22
  • 25629

Android--使用XMLPull解析xml

在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。...
  • chaoyu168
  • chaoyu168
  • 2016年03月21日 11:26
  • 2892

Xstream把xml转换成java对象的异常:java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserFactory

1.抛出的异常信息如下: 2.原因: 应该改成:   XStream xstream=new XStream(new DomDriver()); //注意:不是new Xstream...
  • ChenAllen1025
  • ChenAllen1025
  • 2012年09月29日 09:13
  • 7476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xmlpull解释xml
举报原因:
原因补充:

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