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

 更新时间:2012年12月05日 09:13:08   作者:  
本文将详细介绍Android如何使用PULL方式解析XML文件,在开发过程中会经常使用到,有需要的朋友可以参考下
一、基本介绍
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
复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<people>
<person id="001">
<name>XY1</name>
<age>22</age>
</person>
<person id="002">
<name>XY2</name>
<age>22</age>
</person>
</people>

复制代码 代码如下:

public class PersonService
{
/**
* 从XML文件中读取数据
*
* @param xml XML文件输入流
*/
public List<Person> getPeople(InputStream xml) throws Exception
{
List<Person> 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<Person>();
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;
}
}

相关文章

  • Android 仿抖音的评论列表的UI和效果的实现代码

    Android 仿抖音的评论列表的UI和效果的实现代码

    抖音是一款音乐创意短视频社交软件,此app已在android各大应用商店和app store 上线。下面小编给大家带来了Android 仿抖音的评论列表的UI和效果的实现代码,感兴趣的朋友参考下吧
    2018-03-03
  • Kotlin超简单实现StepView的方法

    Kotlin超简单实现StepView的方法

    这篇文章主要介绍了Kotlin超简单实现StepView的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Android开发之CheckBox的简单使用与监听功能示例

    Android开发之CheckBox的简单使用与监听功能示例

    这篇文章主要介绍了Android开发之CheckBox的简单使用与监听功能,结合简单实例形式分析了Android使用CheckBox控件的布局与功能实现技巧,需要的朋友可以参考下
    2017-07-07
  • Android调用摄像头拍照开发教程

    Android调用摄像头拍照开发教程

    这篇文章主要为大家详细介绍了Android调用摄像头拍照的开发教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android加载html中svg格式图片进行显示

    Android加载html中svg格式图片进行显示

    这篇文章主要为大家详细介绍了Android加载html中svg格式图片进行显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android实现井字游戏

    Android实现井字游戏

    这篇文章主要为大家详细介绍了Android实现井字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Android滑动冲突的解决技巧

    Android滑动冲突的解决技巧

    Android滑动冲突是Android开发中常见的问题,在一个界面中,可能存在多个View可以响应滑动事件,如果这些View滑动方向一致,则会导致滑动冲突,本文将从原理、使用与优化三个方面,详细介绍Android滑动冲突的解决方式,需要的朋友可以参考下
    2024-01-01
  • Android扩大View点击范围的方法

    Android扩大View点击范围的方法

    Android4.0设计规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸约为9毫米。7~10毫米,这是一个用户手指能准确并且舒适触摸的区域。本文将介绍Android扩大View点击范围的方法
    2021-05-05
  • Android ListView弹性效果的实现方法

    Android ListView弹性效果的实现方法

    这篇文章主要为大家详细介绍了Android ListView弹性效果的实现方法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 使用android studio导入模块的两种方法(超详细)

    使用android studio导入模块的两种方法(超详细)

    这篇文章主要介绍了使用android studio导入模块的两种方法,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09

最新评论