Android XML解析之PULL及单元测试
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及单元测试相关推荐
- android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 二: 把对象转换成xml
前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...
- Android XML解析器– XMLPullParser
Welcome to android xml parser example using XMLPullParser. We will have a sample XML file that we wi ...
- Android[中级教程]第五章 XML解析之PULL解析器
这一章我们来学习Android中的XML解析器,Android中自带了三个XML解析器,有PULL,SAX,DOM解析器,其中PULL跟SAX都是以事件作为驱动导向的解析器,优点是占用内存小,处理速度 ...
- android XML解析详解(封装好的工具类)
常见的XML解析有哪几种? DOM解析; PULL解析;(android自带的解析XML的技术) JDOM解析; SAX解析; DOM4J PULL解析示例代码: <1> 我们要解析的XM ...
- android xml解析的三种方式
2019独角兽企业重金招聘Python工程师标准>>> 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了 ...
- XML解析:PULL解析
为什么80%的码农都做不了架构师?>>> 概述: PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用 ...
最新文章
- Apache 配置 Basic 认证
- VR应用开发遍地走的日子还有多远
- Windows命令计算MD5与SHA1/256值
- 23. Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
- C#中使用SendMessage进行进程通信,可发送字符串,结构体(不能发送类类型)。
- 【No.7 C++对象的构造与析构时间】
- 看看我写的文章,牛逼不。哈哈。
- 剑灵电五服务器位置,选对服务器很重要 剑灵新手选服攻略
- grub4dos linux live,grub4dos硬盘引导fedora12 livecd失败
- 【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式...
- python一次读取10行_Python怎么读取Excel的行数和列数?
- 【毫米波雷达】人体目标探测理论
- Mcafee(麦咖啡)8.5i 使用设置图解
- Java电阻计算器(二)
- 本地blast安装使用教程
- VMware esxi 阵列卡驱动下载
- 植物2 IOS 怎么实名认证_植物大战僵尸2未来世界22天困难怎么过关 植物阵容推荐...
- Tensorboard远程连接
- linux-Perl-语言入门
- RT-Thread 嵌入式人工智能教学在线研讨会,就在明天!
热门文章
- (第十二周)Bug修正报告
- 转:Web页面通过URL地址传递参数常见问题及检测方法
- 记忆碎片---搭建php+apache+eclipse中的问题
- c# 反射技术杂谈。,
- HTML5 Canvas学习---第一章 《Hello World及图片显示》
- AngularJS Slider指令(directive)扩展
- Microsoft Visual Studio Ultimate 2012 ISO 映像
- 由一个网站注册验证码带来的思考
- PCL Lesson1 :PCL库PCLVisualizer的简单使用
- ajax要不要入口函数,Ajax - SegmentFault 思否