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. 使用HttpClient连接池进行https单双向验证

    https单双向验证环境的搭建参见:http://www.cnblogs.com/YDDMAX/p/5368404.html 一.单向握手 示例程序: package com.ydd.study.he ...

  2. Hibernate操作指南-实体与常用类型的映射以及基本的增删改查(基于注解)

  3. EF 延迟加载和预先加载

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨延迟加载和预先加载 Entity Frame ...

  4. APP开发:对于IOS APP应用的推广渠道有哪些?

    亿合科技了解到,随着移动互联网时代的到来,苹果从2007年进入中国市场,一直备受大众喜爱,手机应用也层出不穷.那么对于那么多的IOS APP应用怎么能获得用户的喜爱呢?于是推广APP应用是需要做的,亿 ...

  5. 安装eclipse的hadoop开发环境--2

    在eclipse上做好一切,在网上很容易搜到 尝试链接hadoop集群失败,尝试单机的操作,发现# ssh localhost失败 解决ssh问题:成功解决 但是eclipse的DFS locatio ...

  6. CSS深入理解之margin

      前言   改变容器尺寸   margin改变容器尺寸有以下两个限制条件: 使用于没有设置宽高的普通block元素float/absolute/fixed元素 以及 inlines水平 table- ...

  7. Thinkphp 中 distinct 的用法

    TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct ...

  8. C#利用微软库完成设备网络定位(经纬度-地址)

    public delegate void OnPositionChangedEventHandle(object sender, PositionChangedEventArgs e); public ...

  9. chartControl绑定数据源

    private void BindChartControl(DataTable dataTable,ChartControl chartControl,int[] columnNO,ViewType ...

  10. mbed学习之 PWMOUT

    PWM通过一个周期内不同占空比来表征模拟量,应用非常广泛.mbed中提供了一个PWM类,来对PWM进行操作,可以分别设置占空比,周期,以及脉冲宽度. 因为这里是使用单片机内部TIM来生成PWM波的,所 ...