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/

   

目录
相关文章
|
16天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
22天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
51 1
|
1月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
2月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
1天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
7 1
|
2天前
|
XML Java 数据库连接
Javaweb之Mybatis的XML配置文件的详细解析
Javaweb之Mybatis的XML配置文件的详细解析
13 0
|
2天前
|
Java API Android开发
Android 11 修改libcore Cipher AS测试
Android 11 修改libcore Cipher AS测试
13 1
|
5天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
14 1
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0