xmlpull解析

xmlpull解析也是跟sax解析一样,都是边解析边释放,所以不会像dom解析那样出现出现溢出。

他的实现代码如下:

package itcast.cn;

import java.io.FileInputStream;

import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlPullParserException;

import org.xmlpull.v1.XmlPullParserFactory;

//把两个person封装到集合里面

//则需要有两个对象,然后把数据放在对象里面,之后把对象放在集合里面

public class Pull {

public static void main(String[] args) throws Exception {

//必须要导入家暴--由于是第三方的,所以要导入

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

XmlPullParser pullParser = factory.newPullParser();

//解析文件

pullParser.setInput(new FileInputStream("person.xml"), "utf-8");

//获取事件类型

int type=pullParser.getEventType();

//循环移动解析器

Person person=null;

ArrayList<Person> persons =null;

while(type!=XmlPullParser.END_DOCUMENT){

switch(type){

case XmlPullParser.START_TAG:

if (pullParser.getName().equals("persons")) {

persons = new ArrayList<Person>();

}else if (pullParser.getName().equals("person")) {

person=new Person();

String id = pullParser.getAttributeValue(0);

person.setId(id);

}else if (pullParser.getName().equals("name")) {

//拿到下一个的值

String name= pullParser.nextText();

person.setName(name);

}else if (pullParser.getName().equals("age")) {

String age= pullParser.nextText();

//由于得到的是String类型,所以需要将这个String类型的转换成int

person.setAge(Integer.parseInt(age));

}

break;

case XmlPullParser.END_TAG:

if (pullParser.getName().equals("person")) {

persons.add(person);

}

break;

default:

break;

}

type=pullParser.next();

}

System.out.println(persons);

}

}

Person对象:

package itcast.cn;

public class Person {

private String name;

private int age;

private String id;

public String getId() {

return id;

}

public void setId(String 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 "Person [name=" + name + ", age=" + age + ", id=" + id + "]";

}

public Person(String id, String name, int age) {

super();

this.id = id;

this.name = name;

this.age = age;

}

public Person() {

super();

// TODO Auto-generated constructor stub

}

}

时间: 2024-10-13 11:22:38

xmlpull解析的相关文章

Android--使用XMLPull解析xml

在Android中极力推荐的xmlpull方式解析xml.xmlpull不只能够使用在Android上.相同也适用于javase,但在javase环境下.你须要自己去获取xmlpull所依赖的类库. 环境: kxml2-2.3.0.jar xmlpull_1_1_3_4c.jar 以上两个jar分别从下面站点下载: http://www.xmlpull.org/    xmlpull http://kxml.sourceforge.net/    kxml xml文件: <? xml versi

android使用xmlpull方式解析xml示例

需要解析的xml内容: <app> <dynamic> <uploadPhoto>true</uploadPhoto> <!-- 是否支持上传图片 false代表不支持,true代表支持 --> <specifyFriends>true</specifyFriends> <!-- 是否支持@好友 false代表不支持,true代表支持 --> <sharWx>true</sharWx>

通过pull解析器操作安卓的xml

通过pull解析器操作安卓的xml 例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person,代码请见本页下面备注: ============================================================================================== 使用pull解析器解析person.xml文件 public class PersonService {  public static List g

抱歉最近朋友结婚去浪了几天~未来几天会正常更新.今天带来XML文件解析

三种解析方法 DOM,SAX,XMLPullParse;你以为我要讲三种嘛 错 ,我只讲一种 ,其他两种我只是说下优缺点, 一.DOM解析器 优点: DOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点).Node对象提供了一系列常量来代表结点的类型,当开发人员获得某个Node类型后,就可以把Node节点转换成相应节点对象(Node的子类对象),以便于调用其特有的方法. Node对象提供了相应的方法去获得它的父结点或子结点.编程人员通过这些方

Android开发之使用PULL解析和生成XML

请尊重他人的劳动成果,转载请注明出处:Android开发之使用PULL解析和生成XML 一.使用PULL解析XML 1.PULL简介 我曾在<浅谈XMl解析的几种方式>一文中介绍了使用DOM方式,SAX方式,Jdom方式,以及dom4j的方式来解析XML.除了可以使用以上方式来解析XML文件外,也可以使用Android系统内置的Pull解析器来解析XML文件. Pull解析器的运行方式与SAX解析器相似.它提供了类似的事件,如开始元素和结束元素事件.使用parser.next()可以进入下一个

android 之 XMLPull

Pull解析 Pull的XML解析操作与SAX解析操作类似,也是采用事件驱动的方式.当XML文档开始解析或者遇到节点时都会有相应的事件代码触发. 主要涉及两个类: org.xmlpull.v1.XmlPullParserFactory org.xmlpull.v1.XmlPullParser 使用XMLPull解析xml文件的步骤: 1.创建工厂类 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 2.创建par

Day01—xml的序列化、xml的pull解析

1.xml的序列化 FileOutputStream os = new FileOutputStream(new File(getFilesDir(),"hai.xml")); //1.获取xml序列化器 XmlSerializer xmlSerializer = Xml.newSerializer(); //2.开始序列化输出流 xmlSerializer.setOutput(os,"utf-8");//os---Outputm,xml文件的写出流,文件的编码格式

Android中Pull解析器解析xml文件案例

首先 准备一个供解析的xml文件,这里我们假定要解析的文件名称为person.xml,文件的具体内容为: <?xml version="1.0" encoding="utf-8"?> <persons> <person id="23"> <name>liming</name> <age>23</age> </person> </persons&g

Android 创建与解析XML(一)—— 概述

Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX.JDOM.DOM4J.Xerces.JAXP等一堆概念,但是很多人总是会弄混他们之间的关系,这对我们理解XML文件的创建和解析很不利.要挑选一个适合在Android平台上使用的XML解析方案,我们还是得先把这些概念厘清. XML基本概念 DOM(Document Object Model,文档对象模