pull解析的特点

  • 事件驱动机制来解析
  • 当解析到一个节点,会自动停止,不会往下继续解析,好处 :很好能够控制流程
  • android默认采用pull解析

pull解析的事件类型

  • start_document :开始文档事件 ,事件类型
  • end_docuent :结束文档事件
  • start_tag: 开始标记
  • end_tag :结束标记
    private List<Map<String, String>> getXmlFormPull(InputStream is)
throws Exception {
List<Map<String, String>> mList = null;
Map<String, String> map = null;
// 1 得到pull对象
XmlPullParser xml = Xml.newPullParser();
xml.setInput(is, "utf-8");
// 2 得到标记
int eventType = xml.getEventType();
// 判断标记 是否结束, 因为 pull 当解析到一个节点,会自动停止,不会往下继续解析
while (eventType != XmlPullParser.END_DOCUMENT) {
// 判断当前的节点信息
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
// xml文件的开始,初始化一个list
mList = new ArrayList<Map<String, String>>();
break;
case XmlPullParser.START_TAG:
// START_TAG ,有多个,需要进行判断
String TagName = xml.getName();
if (TagName.equals("books")) {
// 根节点 ,创建mapduixiang } else if (TagName.equals("book")) {
            map = new HashMap<String, String>();
// 第一属性节点
String id = xml.getAttributeValue(0);
map.put("ID", id);
} else if (TagName.equals("name")) {
String name = xml.nextText();
map.put("name", name);
} else if (TagName.equals("price")) {
String price = xml.nextText();
map.put("price", price);
} break;
case XmlPullParser.END_TAG:
// 结束节点,一个子节点完成
if (xml.getName().equals("book")) {
mList.add(map);
} break; default:
break;
} // 标记移动到下一个节点
eventType = xml.next();
}
System.out.println(mList.toString());
return mList;
}

pull 解析XML 文件的更多相关文章

  1. 使用XML序列化器生成XML文件和利用pull解析XML文件

    首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...

  2. pull解析xml文件

    pull解析xml文件 先自己写一个xml文件,存一些天气信息 拿到xml文件 InputStream is = getClassLoader().getResourceAsStream(" ...

  3. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ...

  4. Android pull解析xml文件

    本文介绍android中使用pull来解析xml文件 先自己写一个xml文件,存一些天气信息 <?xml version="1.0" encoding="UTF-8 ...

  5. android——使用pull解析xml文件

    1.persons.xml 将persons.xml文件放到src目录下.其代码如下: <?xml version='1.0' encoding='UTF-8' standalone='yes' ...

  6. [android] 采用pull解析xml文件

    /***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...

  7. Android SAX、DOM、Pull解析xml文件剖析与案例讲解

    XML介绍 XML(Extensible Markup Language) 即可扩展标记语言,与HTML一样,都是SGML(Standard Generalized Markup Language,标 ...

  8. 使用PULL解析XML文件

    转载博文1:http://blog.csdn.net/wangkuifeng0118/article/details/7313241 XmlPull和Sax类似,是基于流(stream)操作文件,然后 ...

  9. Android中pull解析XML文件的简单使用

    首先,android中解析XML文件有三种方式,dom,sax,pull 这里先讲pull,稍候会说SAX和DOM pull是一种事件驱动的xml解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...

  10. android 生成、pull解析xml文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

随机推荐

  1. Date.prototype.format

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...

  2. 解决Chrome flash过期

    解决Chrome flash过期的办法安装Adobe Flash Player PPAPI

  3. JQuery DOM clone(true),对于克隆对象事件触发后,处理函数中this指代克隆对象

    <!doctype html> <html ng-app> <head> <script src="./jquery.js">< ...

  4. windows远程控制ubuntu---基于ssh

    要实现windows下连接ubuntu需要安装以下软件: 1. windows下安装winSCP 2. Ubuntu下安装OpenSSH Server 可以使用命令行安装openSSH Server: ...

  5. ubuntu16.04部署RED5流媒体服务器

    前提:jdk已经安装 1,下载RED5(https://github.com/Red5/red5-server/releases)选择red5-server-X.X.X-MXX.tar.gz 2,解压 ...

  6. Leetcode: Convex Polygon

    Given a list of points that form a polygon when joined sequentially, find if this polygon is convex ...

  7. 返回值是JSON的阿贾克斯方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. sql语句修改字段长度

    sql语句修改字段长度 alter table <表名> alter column <字段名> 新类型名(长度) 例: alter table students alter c ...

  9. JAVA序列化和反序列化

    http://developer.51cto.com/art/201202/317181.htm http://blog.csdn.net/earbao/article/details/4691440 ...

  10. Java比C++好在哪儿?

    1.内外局部变量,不允许重名,避免了C++的那种混淆. 2.语言层面支持多线程,大幅减少了线程同步所需的代码量. 3.匿名类,匿名函数,可以作为参数直接写在参数所需要的位置,而不需要在其它地方再定义实 ...