android xml xmlpullparser,Android XmlPullParser 方式解析 Xml 文档

Android XmlPullParser 方式解析 Xml 文档

xml 文件格式

张三

22

李四

20

XmlPullParser 方式解析 xml 文件

import java.io.InputStream;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.List;

import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlSerializer;

import com.eboy.domain.Person;

import android.util.Xml;

public class PersonService {

public static List getPersons(InputStream xml) throws Exception {

List persons = null;

Person person = null;

XmlPullParser pullParser = Xml.newPullParser();

pullParser.setInput(xml, "UTF-8"); // 为Pull解释器设置要解析的XML数据

int event = pullParser.getEventType();

while (event != XmlPullParser.END_DOCUMENT) {

switch (event) {

case XmlPullParser.START_DOCUMENT:

persons = new ArrayList();

break;

case XmlPullParser.START_TAG:

if ("person".equals(pullParser.getName())) {

int id = Integer.valueOf(pullParser.getAttributeValue(0));

person = new Person();

person.setId(id);

}

if ("name".equals(pullParser.getName())) {

String name = pullParser.nextText();

person.setName(name);

}

if ("age".equals(pullParser.getName())) {

int 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;

}

/**

* 保存数据到xml文件中

* @param persons

* @param out

* @throws Exception

*/

public static void save(List persons, OutputStream out) throws Exception {

XmlSerializer serializer = Xml.newSerializer();

serializer.setOutput(out, "UTF-8");

serializer.startDocument("UTF-8", true);

serializer.startTag(null, "persons");

for (Person person : persons) {

serializer.startTag(null, "person");

serializer.attribute(null, "id", person.getId().toString());

serializer.startTag(null, "name");

serializer.text(person.getName().toString());

serializer.endTag(null, "name");

serializer.startTag(null, "age");

serializer.text(person.getAge().toString());

serializer.endTag(null, "age");

serializer.endTag(null, "person");

}

serializer.endTag(null, "persons");

serializer.endDocument();

out.flush();

out.close();

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值