关于Android的XML文件解析器Pull解析方式事件类型的分析
来源:互联网 发布:淘宝网首页打不开图片 编辑:程序博客网 时间:2024/05/17 02:43
欢迎大家批评指正和转载,不过还是希望大家尊重一下劳动成果,转载注明出处。
转载请注明出处:http://blog.csdn.net/caoshichao520326/article/details/8859822
在解析XML文件的过程中,发现API文档中对于解析事件描述的不够详尽,给解析XML文件带来了不少的困扰,今天做了个事件类型分析的demo和大家分享一下。第一步:新建一个Android工程文件,其他都不用改,只要在onCreate()方法中写一个xmlTest()方法即可,代码如下:
package com.csc.xmltest;import java.io.IOException;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import android.app.Activity;import android.content.res.XmlResourceParser;import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);xmlTest();}/** * 测试Pull解析方式中的事件类型 */private void xmlTest() {//定义事件类型int eventType = 0;try {XmlResourceParser xrp = getResources().getXml(R.xml.timezones);// 获取到xml文件时,XmlResourceParser的是指向文档开始处eventType = xrp.getEventType();// System.out.println("-------->"+eventType);//查看事件的数值while (eventType != XmlPullParser.END_DOCUMENT) {switch (eventType) {case XmlPullParser.START_DOCUMENT:System.out.println("Start document");break;case XmlPullParser.START_TAG:System.out.println("Start tag " + xrp.getName());break;case XmlPullParser.TEXT:System.out.println("Text " + xrp.getText());break;case XmlPullParser.END_TAG:System.out.println("End tag " + xrp.getName());break;default:break;}eventType = xrp.next();//System.out.println("-------->"+eventType);//查看事件的数值}} catch (XmlPullParserException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//判断事件类型是不是文档结束if (eventType == XmlPullParser.END_DOCUMENT) {System.out.println("End document");}}}第二步:上面的代码中用到了一个timezones.xml文件,代码如下,只需将下面代码复制到Android工程文件-->res-->xml文件夹下即可:
<?xml version="1.0" encoding="utf-8"?><timezones> <timezone id="Pacific/Majuro">马朱罗</timezone> <timezone id="Pacific/Midway">中途岛</timezone></timezones>第三部 :在模拟器上运行程序,在LogCat上可以看到如下信息:
我们对打印结果做分析如下:
1.可以看到Start document打印了两次,说明当程序实例化XmlResourceParser这个对象后,Pull解析器默认的事件是XmlPullParser.START_DOCUMENT,当执行一次XmlResourceParser.next()后,事件仍然指向XmlPullParser.START_DOCUMENT。
2.之后再执行XmlResourceParser.next()则依次向下取一个事件。
3.常用的事件有:XmlPullParser.START_DOCUMENT、XmlPullParser.START_TAG、XmlPullParser.TEXTXmlPullParser.END_TAG、XmlPullParser.END_DOCUMENT。
根据事件的值,就可以解析出xml文档的内容,具体怎么处理数据,就根据大家的需要来编写了。
源码下载地址:http://download.csdn.net/detail/caoshichao520326/5310287
欢迎大家批评指正和转载,不过还是希望大家尊重一下劳动成果,转载注明出处。
转载请注明出处:http://blog.csdn.net/caoshichao520326/article/details/8859822
- 关于Android的XML文件解析器Pull解析方式事件类型的分析
- android解析xml文件的方式 --- PULL
- android解析xml文件的方式之PULL解析
- android解析xml文件的方式(其三PULL方式)
- android解析xml文件的方式(其三)PULL
- 关于Android XML文件的解析方式DOM,SAX,Pull的具体实现。
- android使用pull的方式解析xml
- Android内置的Pull解析器解析XML文件
- android 使用集成的pull解析器解析xml文件
- android 的pull 解析器 解析 xml文件(转载)
- XML的pull解析方式
- Xml的PULL解析方式
- Xml的pull解析方式
- Pull的xml解析方式
- Android的pull解析XML文件
- 关于XML文件解析的学习软件PULL解析方法
- android Pull方式解析xml文件
- Android pull方式解析XML文件
- 技术政治之借壳孵蛋
- lablebiew ole
- ContentObserver 内容观察者
- 获取文件当前目录
- Inventor 2014 API 新功能 (6) 插槽件(slot)草图
- 关于Android的XML文件解析器Pull解析方式事件类型的分析
- c++ 命令模式
- 读写STM32内部flash读写代码
- STM32 对内部FLASH读写接口函数
- 工厂设计模式
- 最近写DirectShow filter的一点经验【by : mem (Memory for ever)】
- FLEX中自定义button样式
- SQL Server 设计规则
- 行级锁瓶颈