- 浏览: 148627 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字,
读取到xml的声明返回数字0 START_DOCUMENT;
读取到xml的结束返回数字1 END_DOCUMENT ;
读取到xml的开始标签返回数字2 START_TAG
读取到xml的结束标签返回数字3 END_TAG
读取到xml的文本返回数字4 TEXT
pull是开源的项目 源码下载地址http://www.xmlpull.org/
service中的代码
- package com.leequer.Service;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.List;
- import org.xmlpull.v1.XmlPullParser;
- import android.util.Xml;
- import com.leequer.Doem.Person;
- /**
- * 使用pull解析xml
- * 2010-04-26
- * @author leequer
- *
- */
- public class ReadXmlByPullService {
- public static List<Person> ReadXmlByPull (InputStream inputStream)throws Exception
- {
- List <Person> personList = null;
- /**
- * android给我们提供了xml 用来得到xmlpull解析器
- */
- XmlPullParser xmlpull = Xml.newPullParser();
- /**
- * 将输入流传入 设定编码方式
- *
- */
- xmlpull.setInput(inputStream, "utf-8");
- /**
- * pull读到xml后 返回数字
- * 读取到xml的声明返回数字0 START_DOCUMENT;
- 读取到xml的结束返回数字1 END_DOCUMENT ;
- 读取到xml的开始标签返回数字2 START_TAG
- 读取到xml的结束标签返回数字3 END_TAG
- 读取到xml的文本返回数字4 TEXT
- */
- int eventCode = xmlpull.getEventType();
- /**
- * 只要这个事件返回的不是1 我们就一直读取xml文件
- */
- Person person = null;
- while(eventCode!=XmlPullParser.END_DOCUMENT)
- {
- switch (eventCode)
- {
- case XmlPullParser.START_DOCUMENT:
- {//开始文档 new数组
- personList =new ArrayList<Person>();
- break;
- }
- case XmlPullParser.START_TAG:
- {
- if("person".equals(xmlpull.getName()))
- {
- person = new Person();
- person.setId(xmlpull.getAttributeValue(0));
- }else if (person!=null)
- {
- if(("name".equals(xmlpull.getName())))
- {
- /**
- * 如果当前元素的下一个元素是文本节点 就可以直接用nextText()这个方法来得到文本节点的内容
- */
- person.setName(xmlpull.nextText());
- }else if ("age".equals(xmlpull.getName()))
- {
- /**
- * 如果当前元素的下一个元素是文本节点 就可以直接用nextText()这个方法来得到文本节点的内容
- */
- person.setAge(xmlpull.nextText());
- }
- }
- break;
- }
- case XmlPullParser.END_TAG:
- {
- if("person".equals(xmlpull.getName())&&person!=null)
- {
- personList.add(person);
- person = null;
- }
- break;
- }
- }
- eventCode = xmlpull.next();//没有结束xml文件就推到下个进行解析
- }
- return personList;
- }
- }
<!--EndFragment-->
利用pull创建xml文件
public static void writeXml(List<Person> persons, Writer writer) throws Exception{
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);//<?xml version="1.0" encoding="UTF-8"?>
serializer.startTag(null, "persons");
for(Person person : persons){
serializer.startTag(null, "person");
serializer.attribute(null, "id", String.valueOf(person.getId()));
serializer.startTag(null, "name");
serializer.text(person.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "age");
serializer.text(String.valueOf(person.getAge()));
serializer.endTag(null, "age");
serializer.endTag(null, "person");
}
serializer.endTag(null, "persons");
serializer.endDocument();
writer.flush();
writer.close();
}
写入xml文件测试
StringWriter writer = new StringWriter();
List<Person> persons = new ArrayList<Person>();
persons.add(new Person(12, "李明", new Short((short)36)));
persons.add(new Person(78, "老张", new Short((short)26)));
persons.add(new Person(90, "老毕", new Short((short)16)));
PullPersonService.writeXml(persons, writer);
Log.i(TAG, writer.toString());
发表评论
-
Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合
2012-03-06 11:21 789Bitmap Drawable byte[] 三者之间的转换以 ... -
Android Service生命周期及用法
2011-03-28 13:03 638写道 大家好,上一节 ... -
Android Activity生命周期
2011-03-28 11:41 812大家好,今天给大家详解一下Android中Activity的生 ... -
Drawable使用入门
2011-03-25 16:03 1146一个让人赏心悦目的界面对软件来说非常重要,因此图形图像资源也显 ... -
Android 中的几个常用控件
2011-03-24 14:43 1028写道 1、RadioButton RadioButton ... -
android命令
2011-03-03 14:44 958写道 大家好,今天我 ... -
android学习的好网址
2011-02-22 10:10 941http://www.droidnova.com/and ... -
linux下操作android模拟器命令
2011-02-14 17:14 2145写道 1:列出模拟器类型 android list ... -
Activity生命周期
2011-02-08 19:59 885大家好,今天给大家详解一下Android中Activit ... -
Intent对象的简单使用
2011-02-08 00:38 623如果要转换的页面不只是背景,颜色或文字内容的不同,而是A ... -
setContentView的应用
2011-02-08 00:34 1522手机页面的转换set ... -
多个Activity之间的通信与数据传递的Bundle对象的使用
2011-02-08 00:18 1175在Activity 中调用另一个Activity ,但若 ... -
多个Activity之间的通信
2011-02-07 22:38 2063第一步:新建一个继承Activity的类,如:NewActiv ... -
共享数据功能使用-ContentProvider
2011-01-26 11:03 1214package it.date; import it ... -
外部应用访问
2011-01-11 16:29 1966使用context中的文件输出流它有四种模式: * ... -
使用SharedPreferences进行数据存储-
2011-01-11 11:07 1005很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们 ... -
dom读取xml文档---android
2011-01-09 22:26 1305除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM ... -
数据保存到sd卡上
2011-01-05 17:22 9661 关键代码 package cn.lee.data; ... -
android读取功能
2011-01-05 16:03 9581 设计界面 <?xml version=" ... -
android的日志输出和单元测试
2010-12-31 17:52 1549日志输出 代替Syste ...
相关推荐
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
在进行毕业设计时,通过这样的源码学习,你可以深入了解XML解析在Android应用中的实际应用,包括如何创建解析器、如何读取和处理XML节点,以及如何在实际项目中优化解析性能。同时,这也会帮助你更好地理解Android的...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
"Android利用Pull生成XML文件"这一主题涉及到的是如何使用Android的Pull解析器来读取和生成XML内容。Pull解析器是一种轻量级、低级别的解析机制,与DOM(文档对象模型)和SAX(简单API for XML)解析器相比,它更...
本文将深入探讨如何在Android中使用Pull解析器来处理XML文件,这是一种高效且节省资源的方式。 Pull解析器是Android提供的一个API,它允许应用程序通过事件驱动的方式解析XML文档。与SAX解析器类似,Pull解析器不...
本文将深入探讨如何在Android中使用PULL解析器(Pull Parser)来解析XML文档,这是一种轻量级且高效的解析方式。 **PULL解析器概述** PULL解析器(Pull Parsing)是一种事件驱动的解析模型,它不需要完整的XML文档...
PULL解析器同样逐行读取XML,但开发者需要主动调用next方法前进到下一个事件。这种方式易于理解和实现,适合简单的XML结构。在解析天气预报XML时,我们首先需要创建PullParser对象,然后通过nextTag()方法遍历XML,...
XML-Pull解析器在读取XML文档时,只处理当前的事件,这样可以节省内存,尤其适合处理大型XML文件。在Android开发中,XML-Pull解析常用于网络数据的解析,因为它高效且内存友好。 首先,我们需要了解如何使用XML-...
在Android中,XMLPullParser是Android SDK提供的一种解析XML的API,它采用拉(Pull)模式,允许开发者按需读取XML文档的下一个事件,而不是一次性加载整个文档到内存。这种方式节省了内存,提高了性能。要使用...
Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个XML文档加载到内存中,而是通过读取XML流并触发相应的事件来进行解析,从而节省资源,尤其...
PULL解析器在读取XML时,会触发一系列的事件,开发者可以注册监听这些事件并进行相应的处理。 要实现PULL解析XML,首先需要创建一个`XmlPullParserFactory`工厂对象,然后用它创建`XmlPullParser`解析器实例。接着...
在Android应用开发中,解析XML数据是常见的需求,例如从网络服务获取数据或者读取本地资源文件。本篇文章将深入探讨如何在Android中使用Pull解析器生成XML数据。 Pull解析器是一种轻量级的解析方式,相比DOM...
本文将深入探讨如何在Android中使用Pull解析器读取XML文件,并结合提供的源码Demo进行分析。 首先,让我们理解什么是XML Pull解析。XML Pull解析是一种轻量级的解析方式,它允许开发者顺序地读取XML文档,就像遍历...
例如,从assets读取XML: ```java AssetManager assets = getAssets(); InputStream in = assets.open("data.xml"); parser.setInput(in, null); ``` 或从raw资源读取: ```java Resources res = getResources(); ...
本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...
而SAX解析采用事件驱动模型,逐行读取XML,适用于处理大型XML文件。本文将重点介绍SAX解析的一种实现方式——Pull解析。 Pull解析器(XMLPullParser)是Android SDK提供的一种轻量级、高效的XML解析方式,它不需要...
总之,Android提供了SAX和PULL两种解析XML的手段,开发者可以根据具体情况灵活选择。在内存有限或者需要高效处理大量XML数据的情况下,SAX可能是更好的选择;而在追求简洁代码和快速开发的场合,PULL解析则更为便捷...
本教程将详细介绍如何在Android中利用Pull解析器(PullParser)来读取XML文件,这是一种高效且内存友好的方式。 首先,让我们了解什么是Pull解析器。Pull解析器是一种事件驱动的解析模型,它不创建整个XML文档树,...
而Pull解析器是SAX解析器的一种简化版本,它提供了一种更简单的API,开发者可以按照需要向前移动解析器,按需读取XML数据,降低了内存占用,且易于使用。 Android中的Pull解析器(`org.xmlpull.v1.XmlPullParser`)...