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/

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;}}
转载自:http://leequer.iteye.com/blog/654306

更多相关文章

  1. 开机自动运行程序【Android】
  2. 实现一个简便的 LRUCache 和 LFUCache
  3. Android(安卓)Toast 详解
  4. Android(安卓)布局优化
  5. android merge标签的用法
  6. Android中三种主要的XML解析方法
  7. 学习Android界面设计的超级利器HierarchyView.bat
  8. android xml解析之Pull
  9. Android(安卓)Kotlin入门-基本类型

随机推荐

  1. 分享一个PHP写的命令行音乐搜索下载器
  2. 关于PHP进程防止内存溢出的排查
  3. php模拟qq登录代码
  4. php base64如何进行URL字符串编码和解码?
  5. PHP实现长轮询【代码示例】
  6. PHP中数组规范和自定义集合
  7. 带你一分钟了解php的四大特性八大优势(详
  8. PHP SPL 标准库之 Countable
  9. PHP之微服务协程框架Swoft
  10. 微信PC端登录和手机端登录逻辑分享