Android解析XML.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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??

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档