Android中Pull解析器解析xml文件案例

首先

准备一个供解析的xml文件,这里我们假定要解析的文件名称为person.xml,文件的具体内容为:

=>23>

接下来写一个person的JavaBean:

package com.yangzi.domain;{private int id;private String name;private int age;() {return id;}(int id) {this.id = id;}public String getName() {return name;}(String name) {this.name = name;}() {return age;}(int age) {this.age = age;}@Overridepublic String toString() {return “Person [id=” + id + “,hljs-string”>”, age=” + age + “]”;}}然后

是业务类的编写:

package com.yangzi.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import android.util.Xml;import com.yangzi.domain.Person;{public static List<Person> getPersons(InputStream xml) throws Exception {List<Person> persons = null;Person person = null;//得到xmlpull解析器XmlPullParser pullParser = Xml.newPullParser();//設置解析器要解析的内容,和编码方式pullParser.setInput(xml,”utf-8″);(event != XmlPullParser.END_DOCUMENT){switch (event) {//xml文件开始节点,开始节点一般做数据的初始化case XmlPullParser.START_DOCUMENT:persons = new ArrayList<Person>();break;//若为开始节点case XmlPullParser.START_TAG://若为person节点if(“person”.equals(pullParser.getName())){//得到idperson = new Person();id = Integer.valueOf(pullParser.getAttributeValue(0));person.setId(id);}//若为名字节点if(“name”.equals(pullParser.getName())){String name = pullParser.nextText();person.setName(name);}//若为年龄节点if(“age”.equals(pullParser.getName())){age = Integer.valueOf(pullParser.nextText());person.setAge(age);}break;case XmlPullParser.END_TAG:if(“person”.equals(pullParser.getName())){persons.add(person);person = null;}break;}event = pullParser.next();//读取下一个节点}return persons;}}接下来

就可以写测试类对其进行测试了:

package com.yangzi.test;import java.io.InputStream;import java.util.List;import android.test.AndroidTestCase;import android.util.Log;import com.yangzi.domain.Person;import com.yangzi.service.PersonService;{String TAG = “PersonServiceTest”;() throws Exception{InputStream in = this.getClass().getClassLoader().getResourceAsStream(“person.xml”);List<Person> persons = PersonService.getPersons(in);for(Person per:persons){Log.i(TAG, per.toString());}}}在测试之前

要在项目清单文件中引入测试环境:

>………</application>….<instrumentation>

ok,点击testPersons方法,运行为Android Junit Test试试吧!

体会

根据业务类PersonService 的分析代码,可以看出,在xml文件中的并没有进行操作,可以任意命名,也就是说,在解析xml文件时可以直接提取自己想要的就行了,其他的不用操作。 自己的想法,,不知道对否,请大神指正啊!

每天告诉自己一次,『我真的很不错』

Android中Pull解析器解析xml文件案例

相关文章:

你感兴趣的文章:

标签云: