当前位置:  编程技术>移动开发

Android中使用PULL方式解析XML文件深入介绍

    来源: 互联网  发布时间:2014-10-11

    本文导语:  一、基本介绍 Android中极力推荐xmlpull方式解析xml。 xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。 jar包下载网址 http://www.xmlpull.org/ http://kxml.sourceforge...

一、基本介绍
Android中极力推荐xmlpull方式解析xml。
xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。
jar包下载网址
http://www.xmlpull.org/
http://kxml.sourceforge.net/
二、例子
读取到xml的声明返回数字0 START_DOCUMENT;
读取到xml的结束返回数字1 END_DOCUMENT ;
读取到xml的开始标签返回数字2 START_TAG
读取到xml的结束标签返回数字3 END_TAG
读取到xml的文本返回数字4 TEXT
代码如下:




XY1
22


XY2
22



代码如下:

public class PersonService
{
/**
* 从XML文件中读取数据
*
* @param xml XML文件输入流
*/
public List getPeople(InputStream xml) throws Exception
{
List lst = null;
Person person = null;
// 获得pull解析器工厂
XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
//获取XmlPullParser的实例
XmlPullParser pullParser = pullParserFactory.newPullParser();
// 设置需要解析的XML数据
pullParser.setInput(xml, "UTF-8");
// 取得事件
int event = pullParser.getEventType();
// 若为解析到末尾
while (event != XmlPullParser.END_DOCUMENT) // 文档结束
{
// 节点名称
String nodeName = pullParser.getName();
switch (event)
{
case XmlPullParser.START_DOCUMENT: // 文档开始
lst = new ArrayList();
break;
case XmlPullParser.START_TAG: // 标签开始
if ("person".equals(nodeName))
{
String id = pullParser.getAttributeValue(0);
person = new Person();
person.setId(id);
}
if ("name".equals(nodeName))
{
String name = pullParser.nextText();
person.setName(name);
}
if ("age".equals(nodeName))
{
int age = Integer.valueOf(pullParser.nextText());
person.setAge(age);
}
break;
case XmlPullParser.END_TAG: // 标签结束
if ("person".equals(nodeName))
{
lst.add(person);
person = null;
}
break;
}
event = pullParser.next(); // 下一个标签
}
return lst;
}
}

    
 
 

您可能感兴趣的文章:

  • 解析ADT-20问题 android support library
  • android layout XML解析错误的解决方法
  • Android入门之TableLayout应用解析(一)
  • 解析:android 如何从JPEG生成BufferedImage
  • 基于Android XML解析与保存的实现
  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • Android入门之TableLayout应用解析(二)
  • 解析Android中string-array数据源的简单使用
  • 解析android创建快捷方式会启动两个应用的问题
  • 解析离线安装Eclipse的Android ADT开发插件的具体操作(图文)
  • 解析后台进程对Android性能影响的详解
  • 解析Android横竖屏切换的问题
  • 解析android中的帮助、about、关于作者、HELP等提示页面
  • Android中asset文件夹与raw文件夹的区别深入解析
  • 解析Android应用程序运行机制
  • android4.0与2.3版本的TP代码区别解析
  • 解析Android中webview和js之间的交互
  • Android中Parcelable的作用实例解析
  • 解析Android开发优化之:对界面UI的优化详解(二)
  • 深入android Unable to resolve target 'android-XX'详解
  • 深入Android开发FAQ的详解
  • Android 自动化测试经验分享 深入UiScrollable
  • Android开发之文件操作模式深入理解
  • Android Mms之:深入理解对话列表管理
  • android生命周期深入分析(一)
  • 深入Android SQLite 事务处理详解
  • ubuntu 12.10 上 android 编译环境搭建的深入解析
  • 深入Android Browser配置管理的详解
  • 深入Android MediaPlayer的使用方法详解
  • 深入android中The connection to adb is down的问题以及解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android快捷方式工具 AnyCut
  • Android中button实现onclicklistener事件的两种方式
  • android 为应用程序创建桌面快捷方式技巧分享
  • Android实现TextView中文字链接的4种方式介绍及代码
  • Android 创建/验证/删除桌面快捷方式(已测试可用)
  • Android递归方式删除某文件夹下的所有文件(.mp3文件等等)
  • Android中通过view方式获取当前Activity的屏幕截图实现方法
  • 在android开发中进行数据存储与访问的多种方式介绍
  • Android定时器实现的几种方式整理及removeCallbacks失效问题解决
  • Android ListView长按弹出菜单二种实现方式示例
  • android中可以通过两种方式调用接口发送短信
  • android 定位的4种方式介绍
  • Android开发中怎样调用系统Email发送邮件(多种调用方式)
  • android开发基础教程—三种方式实现xml文件解析
  • android PopupWindow 和 Activity弹出窗口实现方式
  • Android 静默方式实现批量安装卸载应用程序的深入分析
  • android 网络编程之网络通信几种方式实例分享
  • Android开发笔记之: 数据存储方式详解
  • Android中实现可滑动的Tab的3种方式
  • Android开发之串口编程原理和实现方式
  • Android开发需要的几点注意事项总结
  • Android瀑布流实例 android_waterfall
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android系统自带样式 (android:theme)
  • Android访问与手机通讯相关类的介绍
  • Android网络共享软件 Android Wifi Tether
  • Android及andriod无线网络Wifi开发的几点注意事项
  • Android 图标库 Android GraphView
  • Android 2.3 下StrictMode介绍
  • 轻量级Android开发工具 Android Tools


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3