我也不多说直接贴代码

package com.yf.pullxmlpare;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
//package com.yf.pullxmlpare.person;
public class PersonService {
public static List<person> getPersons(InputStream xml) throws Exception{
List<person> person1 = null;
person ps=null;
XmlPullParser PullParser = Xml.newPullParser();
PullParser.setInput(xml, "UTF-8");
int event = PullParser.getEventType();
while(XmlPullParser.END_DOCUMENT != event){
switch(event){
case XmlPullParser.START_DOCUMENT:
person1 = new ArrayList<person>(); //做初始化
break;
case XmlPullParser.START_TAG: //2
if("person".equals(PullParser.getName())){
int id = new Integer( PullParser.getAttributeValue(0));
ps = new person();
ps.setId(id);
}
if("name".equals(PullParser.getName())){
String s = PullParser.nextText();
ps.setName(s);
}
if("age".equals(PullParser.getName())){
int age = new Integer( PullParser.nextText());
ps.setAge(age);
}
break;
case XmlPullParser.END_TAG:
if("person".equals(PullParser.getName())){
person1.add(ps);
ps = null;
}
break;
case XmlPullParser.END_DOCUMENT:
break;
default:
break;
}
event = PullParser.next(); //移动指针向后面的元素
}
return person1;
}
}
mainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yf.pullxmlpare"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.yf.pullxmlpare.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:targetPackage="com.yf.pullxmlpare"
android:name="android.test.InstrumentationTestRunner"
android:label="Testfor my app"
/>
</manifest>

单元测试代码

package testxml;
import java.io.InputStream;
import java.util.List;
import com.yf.pullxmlpare.PersonService;
import com.yf.pullxmlpare.person;
import android.test.AndroidTestCase;
import android.util.Log;
public class TestXML extends AndroidTestCase {
private final String TAG = "TestXML";
public void testperson() throws Exception{
InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");
List<person> ps1 = PersonService.getPersons(xml);
for(person personx:ps1){
Log.i(TAG, personx.toString());
}
}
}

最新内容请见作者的GitHub页:http://qaseven.github.io/

Android XML解析之PULL及单元测试相关推荐

  1. android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  2. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  3. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  4. android XMl 解析神奇xstream 二: 把对象转换成xml

    前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...

  5. Android XML解析器– XMLPullParser

    Welcome to android xml parser example using XMLPullParser. We will have a sample XML file that we wi ...

  6. Android[中级教程]第五章 XML解析之PULL解析器

    这一章我们来学习Android中的XML解析器,Android中自带了三个XML解析器,有PULL,SAX,DOM解析器,其中PULL跟SAX都是以事件作为驱动导向的解析器,优点是占用内存小,处理速度 ...

  7. android XML解析详解(封装好的工具类)

    常见的XML解析有哪几种? DOM解析; PULL解析;(android自带的解析XML的技术) JDOM解析; SAX解析; DOM4J PULL解析示例代码: <1> 我们要解析的XM ...

  8. android xml解析的三种方式

    2019独角兽企业重金招聘Python工程师标准>>> 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了 ...

  9. XML解析:PULL解析

    为什么80%的码农都做不了架构师?>>> 概述: PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用 ...

最新文章

  1. Apache 配置 Basic 认证
  2. VR应用开发遍地走的日子还有多远
  3. Windows命令计算MD5与SHA1/256值
  4. 23. Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
  5. C#中使用SendMessage进行进程通信,可发送字符串,结构体(不能发送类类型)。
  6. 【No.7 C++对象的构造与析构时间】
  7. 看看我写的文章,牛逼不。哈哈。
  8. 剑灵电五服务器位置,选对服务器很重要 剑灵新手选服攻略
  9. grub4dos linux live,grub4dos硬盘引导fedora12 livecd失败
  10. 【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式...
  11. python一次读取10行_Python怎么读取Excel的行数和列数?
  12. 【毫米波雷达】人体目标探测理论
  13. Mcafee(麦咖啡)8.5i 使用设置图解
  14. Java电阻计算器(二)
  15. 本地blast安装使用教程
  16. VMware esxi 阵列卡驱动下载
  17. 植物2 IOS 怎么实名认证_植物大战僵尸2未来世界22天困难怎么过关 植物阵容推荐...
  18. Tensorboard远程连接
  19. linux-Perl-语言入门
  20. RT-Thread 嵌入式人工智能教学在线研讨会,就在明天!

热门文章

  1. (第十二周)Bug修正报告
  2. 转:Web页面通过URL地址传递参数常见问题及检测方法
  3. 记忆碎片---搭建php+apache+eclipse中的问题
  4. c# 反射技术杂谈。,
  5. HTML5 Canvas学习---第一章 《Hello World及图片显示》
  6. AngularJS Slider指令(directive)扩展
  7. Microsoft Visual Studio Ultimate 2012 ISO 映像
  8. 由一个网站注册验证码带来的思考
  9. PCL Lesson1 :PCL库PCLVisualizer的简单使用
  10. ajax要不要入口函数,Ajax - SegmentFault 思否