7.安卓.pull xml 保存xml并 解析xml

package com.example.xml;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;

import android.util.Log;
import android.util.Xml;

import com.example.entites.Person;

public class PullParseXml {
public List<Person> pullParseXml()
{
XmlPullParser pull = Xml.newPullParser();
Person person = null;
List<Person> list = null;
try {
pull.setInput(this.getClass().getClassLoader().getResourceAsStream("persons.xml"), "UTF-8");
int type = pull.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if ("person".equals(pull.getName())) {
person = new Person();
person.setId(new Integer(pull.getAttributeValue(0)));
}
if ("name".equals(pull.getName())) {
person.setName((pull.nextText()));
}
if ("age".equals(pull.getName())) {
person.setAge((new Integer(pull.nextText())));
}
break;
case XmlPullParser.END_TAG:
if ("person".equals(pull.getName())) {
list.add(person);
}
break;
default:
break;
}
type = pull.next();
}
} catch (Exception e) {
Log.i("TestClass", e.getMessage());
e.printStackTrace();
}
return list;
}

public void saveXml(List<Person> list,OutputStream output) throws Exception
{
XmlSerializer xml = Xml.newSerializer();
xml.setOutput(output,"UTF-8");
xml.startDocument("UTF-8", true);
xml.startTag(null, "persons");
for (int i = 0; i < list.size(); i++) {
xml.startTag(null, "person");
xml.attribute(null, "id", list.get(i).getId()+"");
xml.startTag(null, "name");
xml.text(list.get(i).getName());
xml.endTag(null, "name");
xml.startTag(null, "age");
xml.text(list.get(i).getAge()+"");
xml.endTag(null, "age");
xml.endTag(null, "person");
}
xml.endTag(null, "persons");
xml.endDocument();
output.flush();
output.close();
}
}

posted @ 2014-05-04 01:58  宝贝,我永远都在  阅读(169)  评论(0)    收藏  举报