Android演示使用PULL方式解析XML文件
来源:互联网 发布:水滴wifi破解软件 编辑:程序博客网 时间:2024/05/02 01:55
之前已经分别介绍过使用SAX方式及DOM方式解析XML文件,本次介绍如何使用PULL方式解析。
三种方式解析XML文件的特性如下:
- SAX和PULL方式都属于无缓存的方式解析,在xml文件较大时使用较为合适,并且由于PULL方式代码编写较为简单,而且可以控制随时停止解析,所以我个人更多倾向于使用PULL方式;
- 由于SAX和PULL方式没有缓存内容,在xml文件较为复杂、xml文件较小等情况下,可以使用DOM方式,毕竟使用起来检索较为方便;
本次示例xml文件如下:
<?xml version="1.0" encoding="utf-8"?><ProjectSettings><CurrentProject>0</CurrentProject><Project><Name>FreeDemo</Name><RunningMode>1</RunningMode></Project></ProjectSettings>
本次示例java代码如下:
package com.freesoft.utility.logger;import java.io.IOException;import java.io.InputStream;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import android.util.Xml;import com.freesoft.utility.IntWrapper;import com.freesoft.utility.settings.ProjectSetting;public class PULLConfigGetter { public static ProjectSetting getConfig(InputStream is) {final int INVALID_PROJECT = -1;ProjectSetting currentSetting = new ProjectSetting();int currentProject = INVALID_PROJECT;int projectCount = 0;XmlPullParser parser = Xml.newPullParser();try { parser.setInput(is, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) {switch (event) {case XmlPullParser.START_DOCUMENT: break;case XmlPullParser.START_TAG: if (parser.getName().equals( ProjectSetting.CURRENTPROJECT_NAME)) {currentProject = IntWrapper.wrap(parser.nextText(),INVALID_PROJECT); } else if (parser.getName() .equals(ProjectSetting.NAME_NAME)) {if (projectCount == currentProject) { currentSetting.setName(parser.nextText());} } else if (parser.getName().equals( ProjectSetting.RUNNINGMODE_NAME)) {if (projectCount == currentProject) { currentSetting.setRunningMode(IntWrapper.wrap( parser.nextText(), ProjectSetting.INVALID_MODE)); projectCount++;} } break;case XmlPullParser.END_TAG: break;}event = parser.next(); }} catch (XmlPullParserException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}return currentSetting; }}
如上代码所示,使用PULL方式解析xml文件过程如下:
- XmlPullParser parser = Xml.newPullParser()创建一个parser;
- parser.setInput(is, "UTF-8")设置输入流的编码方式;
- int event = parser.getEventType()得到一个eventtype;
- 之后对这个eventtype循环,检查事件类型,并处理得到的值;
- 注意在循环内使用parser.next迭代;
- Android演示使用PULL方式解析XML文件
- android 使用pull方式解析xml文件
- android 使用pull 方式解析 xml文件
- Android使用Pull解析方式解析xml文件
- Android中使用PULL方式解析XML文件
- Android中使用PULL方式解析XML文件
- Android中使用PULL方式解析XML文件
- Android中使用PULL方式解析XML文件
- android Pull方式解析xml文件
- Android pull方式解析XML文件
- android解析xml文件的方式 --- PULL
- 使用pull方式解析xml文件
- android使用pull方式解析xml
- android使用pull的方式解析xml
- Android使用Pull方式解析XML
- android 使用 pull 解析xml文件
- android 使用 pull 解析xml文件
- Android 中使用Pull解析XML文件
- java问号表达式用法
- [android]Application Fundamentals
- Oracle External Table (1)
- {php 字符串函数}
- 模糊查询的优化
- Android演示使用PULL方式解析XML文件
- POCSAG编码和BCH(31,21)校验详解
- hdu 1542 poj/pku 1151(线段树求面积并)
- VIM 手册
- zoj 3538 Arrange the Schedule
- 深度心理学
- C++各大有名库的介绍——准标准库Boost
- java返回json串形式结果
- Yui compressor 自动执行shell