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= ...
随机推荐
- 自定义NSLog
我们在调试程序的时候,往往需要输出一些日志信息,用到NSLog函数,当我们准备发布程序,需要注释掉NSLog代码,这个时候往往会定义一个宏,在调试的时候,会输出日志,在Release正式版本的时候,会 ...
- Asp.Net Razor中的Consistent Layout
有意义的参考:http://www.asp.net/web-pages/tutorials/working-with-pages/3-creating-a-consistent-look Asp.ne ...
- Opennms 问题整理
1.网页时间显示不正确,需要修改:bin/opennms: 添加:MANAGER_OPTIONS="$MANAGER_OPTIONS -Duser.timezone=Asia/Shangha ...
- 自定义cell侧滑删除
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return Y ...
- linux学习第一天
linux touch 文件名mkdir -P 路径文件 cat 打开文件 vihostname 主机名ln 复制 ln -s 快捷方式cp 复制-r复制整个目录-p保持源文件属性不变-f强制复制mv ...
- Android仿“守望先锋”加载动画
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 效果图 实现思路 画一个小六边形 按效果图位置画七个小六边形 实现一个小六边形的显示与隐藏 ...
- scale配合过渡的时候bug
使用scale的时候注意两点 1:scale(1)的时候尽量图片的 width==naturalWidth bug表现为过渡生效时候图片变模糊 2:scale在过渡前和过渡后的计算后的width和he ...
- js'中的apply和call和bind的用法
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这 ...
- 揭秘史上最完美一步到位的搭建Andoriod开发环境
Windows环境下Android开发环境搭建虽然不难而且网上资料众多,但是众多资料如出一折 忽略了很多细节,最终还是没能达到满意效果. 基本步骤如下:JDK安装.环境变量配置.Eclipse下载.A ...
- HTTP标头
HTTP头信息 头信息由“键:值”组成.它们描述客户端或者服务器的属性.被传输的资源以及应该实现连接. 四种不同类型的头标 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关 ...