pull 解析XML 文件
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 文件的更多相关文章
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- pull解析xml文件
pull解析xml文件 先自己写一个xml文件,存一些天气信息 拿到xml文件 InputStream is = getClassLoader().getResourceAsStream(" ...
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ...
- Android pull解析xml文件
本文介绍android中使用pull来解析xml文件 先自己写一个xml文件,存一些天气信息 <?xml version="1.0" encoding="UTF-8 ...
- android——使用pull解析xml文件
1.persons.xml 将persons.xml文件放到src目录下.其代码如下: <?xml version='1.0' encoding='UTF-8' standalone='yes' ...
- [android] 采用pull解析xml文件
/***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...
- Android SAX、DOM、Pull解析xml文件剖析与案例讲解
XML介绍 XML(Extensible Markup Language) 即可扩展标记语言,与HTML一样,都是SGML(Standard Generalized Markup Language,标 ...
- 使用PULL解析XML文件
转载博文1:http://blog.csdn.net/wangkuifeng0118/article/details/7313241 XmlPull和Sax类似,是基于流(stream)操作文件,然后 ...
- Android中pull解析XML文件的简单使用
首先,android中解析XML文件有三种方式,dom,sax,pull 这里先讲pull,稍候会说SAX和DOM pull是一种事件驱动的xml解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...
- android 生成、pull解析xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
随机推荐
- java字典序全排列
import java.util.Arrays; /** *字典序全排列 *字符串的全排列 *比如单词"too" 它的全排列是"oot","oto&q ...
- ubifs概述
UBIFS无排序区块图像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一.真正开 ...
- 使用SpringMVC集成SpringSession的问题
最近在使用SpringSession时遇到一个问题,错误日志如下: Exception sending context initialized event to listener instance o ...
- AngularJS Best Practices: ng-include vs directive
For building an HTML template with reusable widgets like header, sidebar, footer, etc. Basically the ...
- 使用MapReduce实现join操作
在关系型数据库中,要实现join操作是非常方便的,通过sql定义的join原语就可以实现.在hdfs存储的海量数据中,要实现join操作,可以通过HiveQL很方便地实现.不过HiveQL也是转化成 ...
- Node.js的特点
作为后端JavaScript的运行平台,Node保留了前端JavaScript中些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛应用的思想作用到了服务器端.下面 ...
- 第九章伪代码编程过程 The PseudoCode Programming Process
目录: 1.创建类和子程序的步骤概述 2.伪代码 3.通过伪代码编程过程创建子程序 4.伪代码编程过程的替代方案 一.创建类和子程序的步骤概述 (1)创建一个类的步骤 1.创建类的总体设计 2.创建类 ...
- HDU-1274 展开字符串
Problem Description 在纺织CAD系统开发过程中,经常会遇到纱线排列的问题.该问题的描述是这样的:常用纱线的品种一般不会超过25种,所以分别可以用小写字母表示不同的纱线,例如:abc ...
- TextField文本框
1)失去第一响应者状态方法(即关闭键盘) 要先将视图view的底层类设置为UIControl类 再设置view的touch down事件,在事件中写入以下方法 [self.textField resi ...
- objective-c第七章课后练习3
题:Fraction类对负分数适用吗?例如:1/4-1/2 能否显示成-1/4? //--------类定义实现参考上篇随笔,此处需更改print方法和main主方法部分---------- - (v ...