Android开发笔记XML数据解析方法及优缺点.docx
第
Android开发笔记XML数据解析方法及优缺点
目录何为XML数据如何解析XML数据1.Pull解析2.简单的Pull解析3.SAX解析
何为XML数据
XML指可扩展标记语言(eXtensibleMarkupLanguage)。
可扩展标记语言(英语:ExtensibleMarkupLanguage,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。其最主要的功能就是为了方便数据的传输与交换。
在Android开发中,我们有时候也需要从服务器上获取xml数据并加以解析
如何解析XML数据
1.Pull解析
这里我们根据谷歌官方的开发者文档提供的方法,也是其推荐的方法来解析xml数据。
1.分析Feed中感兴趣的标签内容
例如:
xmlversion=1.0encoding=utf-8
feedxmlns=/2005/Atomxmlns:creativeCommons=/creativeCommonsRssModule...
titletype=textnewestquestionstaggedandroid-StackOverflow/title
entry
/entry
entry
id/q/9439999/id
re:rankscheme=0/re:rank
titletype=textWhereismydatafile/title
categoryscheme=/feeds/tag
tagnames=androidsort=newest/tagsterm=android/
categoryscheme=/feeds/tag
tagnames=androidsort=newest/tagsterm=file/
author
namecliff2310/name
uri/users/1128925/uri
/author
linkrel=alternatehref=/
questions/9439999/where-is-my-data-file/
published2012-02-25T00:30:54Z/published
updated2012-02-25T00:30:54Z/updated
summarytype=html
pIhaveanApplicationthatrequiresadata
file.../p
/summary
/entry
entry
/entry
/feed
就是一份xml数据,其中两个对应中的内容即为一个标签中的内容,比如说entry标签中嵌套的id标签为:
id/q/9439999/id
其内容即为/q/9439999
2.选择解析器
为了解析xml数据,我们需要选择一些解析器来帮助我们分析数据。
官方文档中提到:
XmlPullParser,这是一种在Android上解析XML的高效且可维护的方式。以前,Android有此接口的两个实现:
KXmlParser(通过XmlPullParserFactory.newPullParser())。
ExpatPullParser(通过Xml.newPullParser())。
任一选择都可以。此部分中的示例使用ExpatPullParser(通过Xml.newPullParser())。
3.实例化解析器
前文提到过,有具体的两种方式实例化解析器,分别是用工厂类生成或者直接用实例生成。比如:
//工厂类生成:
XmlPullParserFactoryfactory=XmlPullParserFactory.newInstance();
XmlPullParserxmlPullParser=factory.newPullParser();
//实例生成:
XmlPullParserxmlPullParser=Xml.newPullParser();
两者任选其一即可。
4.然后我们可以具体配置一下解析器
publicclassStackOverflowXmlParser{
private