pull解析xml
发布时间:2020-12-16 05:59:43 所属栏目:百科 来源:网络整理
导读:以备今后查询:pull解析xml model部分 package com.example.xmlpullparsertest.model;public class Student {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String
以备今后查询:pull解析xml
model部分 package com.example.xmlpullparsertest.model; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [id=" + id + ",name=" + name + ",age=" + age + "]"; } } Service部分 package com.example.xmlpullparsertest.service; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import com.example.xmlpullparsertest.model.Student; import android.util.Xml; public class xmlParse { public static List<Student> readXml(InputStream inputStream) throws Exception{ List<Student> students =null; Student student = null; XmlPullParser xmlpullparser = Xml.newPullParser(); xmlpullparser.setInput(inputStream,"utf-8"); int event = xmlpullparser.getEventType(); while(event != XmlPullParser.END_DOCUMENT){ switch(event){ case XmlPullParser.START_DOCUMENT: students = new ArrayList<Student>(); break; case XmlPullParser.START_TAG: if("student".equals(xmlpullparser.getName())){ student = new Student(); student.setId(new Integer(xmlpullparser.getAttributeValue(0))); } if("name".equals(xmlpullparser.getName())){ student.setName(xmlpullparser.nextText()); } if("age".equals(xmlpullparser.getName())){ student.setAge(new Integer(xmlpullparser.nextText())); } break; case XmlPullParser.END_TAG: if("student".equals(xmlpullparser.getName())){ students.add(student); student=null; } break; case XmlPullParser.END_DOCUMENT: break; } event = xmlpullparser.next(); } return students; } } test部分 package test; import java.io.InputStream; import java.util.List; import android.util.Log; import com.example.xmlpullparsertest.model.Student; import com.example.xmlpullparsertest.service.xmlParse; import junit.framework.TestCase; public class test extends TestCase { private static final String TAG = "test"; protected void setUp() throws Exception { super.setUp(); } public void testXml(){ InputStream inStream=xmlParse.class.getClassLoader().getResourceAsStream("student.xml"); List<Student> ls=null; try { ls = xmlParse.readXml(inStream); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } for(Student s : ls){ Log.i(TAG,s.toString()); } } } package test; import java.io.InputStream; import java.util.List; import com.example.xmlpullparsertest.model.Student; import com.example.xmlpullparsertest.service.xmlParse; import android.test.AndroidTestCase; import android.util.Log; public class test2 extends AndroidTestCase { private static final String TAG = "test"; protected void setUp() throws Exception { super.setUp(); } public void testXml()throws Exception { InputStream inStream=xmlParse.class.getClassLoader().getResourceAsStream("student.xml"); List<Student> ls=xmlParse.readXml(inStream); for(Student s : ls){ Log.i(TAG,s.toString()); } } } 上面2种形式都可以测试 student.xml <?xml version="1.0" encoding="utf-8"?> <students> <student id="001"> <name>jk</name> <age>22</age> </student> <student id="002"> <name>gl</name> <age>22</age> </student> </students> 测试时student.xml放在和test同级目录,即src下
修改AndroidManifest.xml以便测试 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xmlpullparsertest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.xmlpullparsertest.XmlPullParserActivity" 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:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.xmlpullparsertest" android:label="Test My App" /> </manifest> 输出: 09-10 06:25:23.920: I/test(4781): Student [id=1,name=jk,age=22] 09-10 06:25:23.920: I/test(4781): Student [id=2,name=gl,age=22] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |