您的位置:首页 > 移动开发 > Android开发

android XML解析之PULL及单元测试

2013-10-07 07:18 411 查看
我也不多说直接贴代码

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());

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: