PULL实现数据写入XML
?
org.wp.service
PULLPersonService
package org.wp.service;import java.io.Writer;import java.util.List;import org.wp.domain.Person;import org.xmlpull.v1.XmlSerializer;import android.util.Xml;public class PULLPersonService { public static void writeXml(List<Person> persons, Writer writer) throws Exception { XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(writer); // <?xml version="1.0" encoding="UTF-8" standalone="yes"?> // true 代表standalone="yes" serializer.startDocument("UTF-8", true); // null代表没有命名空间 serializer.startTag(null, "persons"); for (Person person : persons) { serializer.startTag(null, "person"); serializer.attribute(null, "id", String.valueOf(person.getId())); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(String.valueOf(person.getAge())); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); // flush方法即使在缓冲区中没有满的情况下 // 也会将缓冲区内的内容强制写到外设 // 也就是所谓的刷新 writer.flush(); // 关闭输入输出流 writer.close(); }}
?
org.wp.xml
PULLPersonServiceTest
package org.wp.xml;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;import org.wp.domain.Person;import org.wp.service.PULLPersonService;import android.content.Context;import android.test.AndroidTestCase;import android.util.Log;public class PULLPersonServiceTest extends AndroidTestCase { private static final String TAG = "PULLPersonServiceTest"; public void testWriteXml() throws Exception { FileOutputStream outStream = this.getContext().openFileOutput( "persons.xml", Context.MODE_PRIVATE); OutputStreamWriter writer = new OutputStreamWriter(outStream, "UTF-8"); // 缓冲写入器 BufferedWriter bufferedWriter = new BufferedWriter(writer); // 不写入文件,直接获得XML中的内容 // StringWriter writer = new StringWriter(); List<Person> persons = new ArrayList<Person>(); persons.add(new Person(12, "张三", new Short((short) 22))); persons.add(new Person(16, "李四", new Short((short) 36))); persons.add(new Person(90, "田七", new Short((short) 28))); PULLPersonService.writeXml(persons, writer); Log.i(TAG, writer.toString()); }}
?
org.wp.domain
Person
package org.wp.domain;public class Person { private Integer id; private String name; private Short age; public Person() { } public Person(Integer id, String name, Short age) { this.id = id; this.name = name; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Short getAge() { return age; } public void setAge(Short age) { this.age = age; } @Override public String toString() { return "Id=" + id + ",Name=" + name + ",Age=" + age; }}
?
?
?