【Android源码 栏目提醒】:网学会员鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“android 使用 pull 解析xml文件 附源码 - 讲义教程”一文,供大家参考学习
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中的代码 Java代码 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 ReadXmlByPull InputStream inputStreamthrows Exception List personList null / android给我们提供了xml 用来得到xmlpull解析器 / XmlPullParser xmlpull Xml.newPullParser / 将输入流传入 设定编码方式 / xmlpull.setInputinputStream 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 whileeventCodeXmlPullParser.END_DOCUMENT switch eventCode case XmlPullParser.START_DOCUMENT: //开始文档 new数组 personList new ArrayList break case XmlPullParser.START_TAG: ifperson.equalsxmlpull.getName person new Person person.setIdxmlpull.getAttributeValue0 else if personnull ifname.equalsxmlpull.getName / 如果当前元素的下一个元素是文本节点 就可以直接用nextText这个方法来得到文本节点的内容 / person.setNamexmlpull.nextText else if age.equalsxmlpull.getName / 如果当前元素的下一个元素是文本节点 就可以直接用nextText这个方法来得到文本节点的内容 / person.setAgexmlpull.nextText break case XmlPullParser.END_TAG: ifperson.equalsxmlpull.getNamepersonnull personList.addperson person null break eventCode xmlpull.next//没有结束xml文件就推到下个进行解析 return personList ReadXmlByPull.rar 44.9 KB http://leequer.iteye.com/blog/654306上一篇:智能手机与Android操作系统(培训课件)