- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android解析XML
Android中解析XML
分类: Android 2011-05-12 19:32 112647人阅读 评论(81) 收藏举报
androidbooksexceptionstringattributesxml
XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。
在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,下面,我将一一向大家详细介绍。
SAX解析器:
SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的。当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理。在事件源调用事件处理器中特定方法的时候,还要传递给事件处理器相应事件的状态信息,这样事件处理器才能够根据提供的事件信息来决定自己的行为。
SAX解析器的优点是解析速度快,占用内存少。非常适合在Android移动设备中使用。
DOM解析器:
DOM是基于树形结构的的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树、检索所需数据。分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息。
由于DOM在内存中以树形结构存放,因此检索和更新效率会更高。但是对于特别大的文档,解析和加载整个文档将会很耗资源。
PULL解析器:
PULL解析器的运行方式和SAX类似,都是基于事件的模式。不同的是,在PULL解析过程中,我们需要自己获取产生的事件然后做相应的操作,而不像SAX那样由处理器触发一种事件的方法,执行我们的代码。PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器。
以上三种解析器,都是非常实用的解析器,我将会一一介绍。我们将会使用这三种解析技术完成一项共同的任务。
我们新建一个项目,项目结构如下:
我会在项目的assets目录中放置一个XML文档books.xml,内容如下:
[xhtml] view plaincopyprint?
?xml?version=1.0?encoding=utf-8???
books??
????book??
????????id1001/id??
????????nameThinking?In?Java/name??
????????price80.00/price??
????/book??
????book??
????????id1002/id??
????????nameCore?Java/name??
????????price90.00/price??
????/book??
????book??
????????id1003/id??
????????nameHello,?Andriod/name??
????????price100.00/price??
????/book??
/books??
然后我们分别使用以上三种解析技术解析文档,得到一个ListBook的对象,先来看一下Book.java的代码:
[java] view plaincopyprint?
package?com.scott.xml.model;??
??
public?class?Book?{??
????private?int?id;??
????private?String?name;??
????private?float?price;??
??????
????public?int?getId()?{??
????????return?id;??
????}??
??
????public?void?setId(int?id)?{??
????????this.id?=?id;??
????}??
??
????public?String?getName()?{??
????????return?name;??
????}??
??
????public?void?setName(String?name)?{??
?????????=?name;??
????}??
??
????public?float?getPrice()?{??
????????return?price;??
????}??
??
????public?void?setPrice(float?price)?{??
????????this.price?=?price;??
????}??
??
????@Override??
您可能关注的文档
最近下载
- 2019新外研社版一起点小学英语四年级上册单词听写及句子默写整理好直接打印版.pdf VIP
- 西软宽带安全审计管理软件说明书.doc
- 监理公司各部门职责.doc
- 国家电网公司配电网工程防触电、防高坠、防倒杆“三十条”工作措施.doc VIP
- 会阴擦洗的护理流程课件.ppt
- 《江苏省水利工程施工质量检验与评定规范》:建筑工程(附录).doc
- 2021年人教版五年级语文下册期末检测5套.pdf VIP
- 24186企业法务[纸考]2023.12.docx
- 初中物理大气压强习题(附有答案).doc VIP
- 2024年03月四川省南充市财政局及局属参公事业单位2024年公开遴选(考调)工作人员笔试参考题库附带答案详解.docx VIP
文档评论(0)