我也不多说直接贴代码
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()); } } } |