本文主要讲述android中xml的解析方式。
android基础知识09:xml文件解析01 SAX
android基础知识09:xml文件解析02 DOM
android基础知识09:xml文件解析03 PULL
在这一节中,我们用另外一种方式解析xml文档,这种方式也是基于事件驱动的,与SAX方式一样,它就是PULL方式。只不过PULL方式读xml回调方法返回的是数字。
读取到xml的声明返回 START_DOCUMENT;
读取到xml的结束返回 END_DOCUMENT ;
读取到xml的开始标签返回 START_TAG
读取到xml的结束标签返回 END_TAG
读取到xml的文本返回 TEXT
xml数据结果还是采用我们先前使用的river.xml文件。
采用PULL方式与SAX大同小异,重点在于我们需要知道导航到什么标签时候做什么就行了,依据上一节SAX处理方式的思路,我们也可以在这一节中一样处理,基本方法是:
基本处理方式是:当PULL解析器导航到文档开始标签时就开始实例化list集合用来存贮数据对象。导航到元素开始标签时回判断元素标签类型,如果是river标签,则需要实例化 River对象了,如果是其他类型,则取得该标签内容并赋予River对象。当然它也会导航到文本标签,不过在这里,我们可以不用。
根据以上的解释,我们可以得出以下处理xml文档逻辑:
1:当导航到XmlPullParser.START_DOCUMENT,可以不做处理,当然你可以实例化集合对象等等。
2:当导航到XmlPullParser.START_TAG,则判断是否是river标签,如果是,则实例化river对象,并调用getAttributeValue方法获取标签中属性值。
3:当导航到其他标签,比如Introduction时候,则判断river对象是否为空,如不为空,则取出Introduction中的内容,nextText方法来获取文本节点内容
4:当然啦,它一定会导航到XmlPullParser.END_TAG的,有开始就要有结束嘛。在这里我们就需要判读是否是river结束标签,如果是,则把river对象存进list集合中了,并设置river对象为null.
由以上的处理逻辑,我们可以得出以下代码:
分享到:
相关推荐
android xml pull解析示例,自己mark下,备忘
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
@Introduction:使用PULL方法进行XML解析 XML文件存放在SDcard根目录下;android1.6版本之前是在/sdcard/,之后是在/mnt/sdcard/ 当前测试用来运行的版本是android。4.2.2 最小支持的版本是android.2.2.0 文件...
android Pull XML文件解析 存取 代码程序
Android ReadXmlByPull 使用Pull解析Xml文件.rar
Android网络编程之Pull解析XML文件~
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
pull解析xml文件
在android中使用pull解析xml文件
在Android中,使用SAX和PULL解析XML,本项目中以解析天气预报为例。 详情见博客:http://blog.csdn.net/yalin18/article/details/7437752
使用Android自带的XML解析器PULL解析器简单的解析xml,并将内容显示在TestView上,代码简化过。
android下解析xml文件的demo
在android平台下使用PULL解析XML源码。
一个eclipse工程包含如何使用android中自带的xml解析器pull,解析和生成xml文件
Android利用pull生成xml文件
XML在Android中是非常常见用来保存数据的文件,解析的方法也很多,如:DOM、SAX、PULL,其中PULL是Android自带的解析XML方法
本例使用多种方式获取本地XML文件,还有通过url获取XML文件,使用Android内置的PULL解析器对XML文件进行解析,例子是解析我国各个省市。 《Android解析XML文件》博文路径:...
这是一个完整的eclipse项目,直接打开就可以看到整个项目完整的代码,而且有单元测试代码
分别实现了android 最常用的SAX和PULL解析方式,并附有详尽分析
NULL 博文链接:https://justsee.iteye.com/blog/930603