Android Pull 解析 XML.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【Android Pull解析XML】 在Android开发中,处理XML数据时,常常会用到两种轻量级的解析方式:SAX解析和Pull解析。本篇主要介绍Android中的Pull解析XML,这是一种事件驱动的解析方式,允许应用程序按需读取XML文档,从而节省内存资源。 Android的内核已经内置了XML Pull解析器,因此我们无需引入额外的库或第三方jar包。相比于SAX解析,Pull解析有其独特之处: 1. **事件触发机制不同**:在SAX解析中,当遇到XML文档中的元素时,会触发对应的回调方法。而Pull解析则是通过调用`getEventType()`方法获取事件类型,返回的是一个整数值,开发者可以通过这个整数值来判断当前处于XML文档的哪个阶段。 2. **可控性更强**:Pull解析允许在程序运行过程中随时停止解析,只需检查当前事件是否满足需求即可。这使得解析过程更加灵活,可以避免解析整个大文件,提高性能。 以下是一个简单的Pull解析XML的示例,假设我们有一个名为`books.xml`的文件,内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <books> <book id="1"> <name>thinking in java</name> <price>85.5</price> </book> <book id="2"> <name>Spring in Action</name> <price>39.0</price> </book> </books> ``` 我们可以创建一个`PullParseService.java`类来解析这个文件: ```java package cn.powerise.xmlparse.demo.service; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; import cn.powerise.xmlparse.demo.entity.Book; public class PullParseService { public static List<Book> getBooks(InputStream inputStream) throws Exception { List<Book> books = null; Book book = null; // 创建XMLPullParser对象 XmlPullParser parser = Xml.newPullParser(); parser.setInput(inputStream, "UTF-8"); int event = parser.getEventType(); // 获取第一个事件 while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: // 文档开始事件 books = new ArrayList<Book>(); // 初始化books集合 break; case XmlPullParser.START_TAG: // 标签开始事件 if ("book".equals(parser.getName())) { // 判断开始标签是否为book book = new Book(); book.setId(Integer.parseInt(parser.getAttributeValue(0))); // 获取book标签的id属性 } if (book != null) { if ("name".equals(parser.getName())) { // 判断开始标签是否为name book.setName(parser.nextText()); // 获取name标签的文本内容 } else if ("price".equals(parser.getName())) { // 判断开始标签是否为price book.setPrice(Float.parseFloat(parser.nextText())); // 获取price标签的文本内容 } } break; // 其他事件处理,如END_TAG等 } event = parser.next(); // 移动到下一个事件 } return books; // 返回解析后的书籍列表 } } ``` 在这个例子中,`PullParseService`的`getBooks`方法接收一个`InputStream`参数,然后创建`XmlPullParser`对象,设置输入流和编码。接着进入一个循环,处理XML文档的每个事件。当遇到`book`标签时,创建新的`Book`对象并设置id;遇到`name`和`price`标签时,分别设置书名和价格。最后返回解析得到的书籍列表。 通过这种方式,我们可以在不完全加载XML文档的情况下解析需要的数据,这对于处理大型XML文件特别有用,因为它可以有效地减少内存消耗,提高应用的性能。同时,Pull解析API简单直观,易于理解和实现,是Android开发中处理XML数据的一个实用选择。





















- 粉丝: 106
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 专门为微信小程序、支付宝小程序编写的 SVGAPlayer.zip
- 微信、支付宝小程序BLE蓝牙SDK.zip
- Wafer - 快速构建具备弹性能力的微信小程序(1).zip
- meEdu微信小程序。(wxapp for meedu).zip
- UNI-APP微信小程序.zip
- 微信小程序-组织圈(小程序(引流能力)+区块链(智能合约))+ 身份链.zip
- 仿微信小程序小打卡.zip
- 基于微信小程序的在线商城,采用wepy框架开发.zip
- 账号助手微信小程序.zip
- 一个在线文档阅读的微信小程序.zip
- 微信小程序-微赞论坛.zip
- 微信小程序_微计划日程管理.zip
- 并发爬取全国城市空气质量日报数据,数据来源:http___datacenter.mep.gov.cn.zip
- 微信、小程序 SDK.zip
- 微信小程序逆向工具.zip
- 地图搜租房【微信公众号、小程序:人生删除指南】.zip


