一、基本介绍
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"?>


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;
}
}

更多相关文章

  1. Android之TabHost布局
  2. Android(安卓)TabHost的标签放在底部,已写成框架,继承即可
  3. Android(安卓)Activity、Fragment之间的数据传递和返回
  4. android 向serverGet和Post请求的两种方式,android向server发送
  5. android 细节之禁用返回键
  6. android之有返回结果跳转intent
  7. Android中父View和子view的点击事件
  8. Android(安卓)XML小工具
  9. Android加载图片时OOM异常解决办法——Bitmap Options

随机推荐

  1. 关于Android权限的一些文章
  2. 【Android】手动显示和隐藏软键盘
  3. Android五子棋游戏设计与实现
  4. 快速构建Android应用原型实践
  5. android ios浏览器请求头
  6. Android 悬浮框的实现
  7. Android好奇宝宝_09_Handler Looper Mess
  8. mono for android software自动更新
  9. 升级Android Studio3.0时遇到的几个问题
  10. webView组件使用指南