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. centos7 搭建GlusterFS

    centos7 搭建GlusterFS 转载http://zhaijunming5.blog.51cto.com/10668883/1704535 实验需求:4台机器安装GlusterFS组成一个集群 ...

  2. sys.argv

    import sys i=0 print len(sys.argv) while i < len(sys.argv): print 'sys.argv[%d]:%s' %(i,sys.argv[ ...

  3. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  4. Elasticsearch之client源码简要分析

    问题 让我们带着问题去学习,效率会更高 1  es集群只配置一个节点,client是否能够自动发现集群中的所有节点?是如何发现的? 2  es client如何做到负载均衡? 3  一个es node ...

  5. Liunx下的系统负荷

                uptime命令回显中的load average所表示的意思和w命令相似,都是表示过去的1分钟.5分钟和15分钟内进程队列中的平均进程数量. 这里需要注意的是load aver ...

  6. FORTRAN 90标准函数(一) (转)

    符号约定: l  I代表整型;R代表实型;C代表复型;CH代表字符型;S代表字符串;L代表逻辑型;A代表数组;P代表指针;T代表派生类型;AT为任意类型. l  s:P表示s类型为P类型(任意kind ...

  7. kali 渗透的一些笔记

    kali实战笔记 17:55 2016/7/19 by: _Silvers kali系统安装后的配置及美化安装vmwareToolstar zxvf VMwareTools-sfsfsfasfasfs ...

  8. Windows Phone 十九、罗盘

    磁力计概述 拥有磁力计硬件支持的设备可以根据磁力计来确定相对于北极的角度 磁力计的访问 API 定义在 Compass 类中 调用方式和加速计类似 <Grid Background=" ...

  9. LigerUI 表单和表格中的combobox如何初始化值

    摘要: 在修改基础信息的时候,通常会遇到需要修改值为选择值的时候,这时候,数据库存的一般是value,而不是显示的text值,但页面显示的时候如果显示成数字型的值,通常会给人不够直观的感觉.因此,要求 ...

  10. VM环境下,快速复制多个SQLServer实例,环境调整

    --windows机器名 sysprep.exe  勾选通用,并关机 --实例名 SELECT @@SERVERNAME ,serverproperty('servername') if server ...