创建xml并写入,读取xml内容

来源:互联网 发布:网络安全技术高峰论坛 编辑:程序博客网 时间:2024/06/06 03:46

要创建xml需要先了解xml组成结构(百度)

首先需要把你的xml文件放到src文件中

package your.xml.sour;import java.io.IOException;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.XmlPullParserException;import org.xmlpull.v1.XmlSerializer;import android.util.Xml;import your.xml.domian.person;public class PersonSour {  public static ArrayList<person> getPerson(InputStream xml) throws XmlPullParserException, IOException  {  XmlPullParser pull=Xml.newPullParser();  ArrayList<person> per=null;  person person=null;  pull.setInput(xml, "UTF-8");  int event=pull.getEventType();  while(event!=XmlPullParser.END_DOCUMENT)  {  switch(event){  case   XmlPullParser.START_DOCUMENT:  per=new ArrayList<person>();  break;  case  XmlPullParser.START_TAG:  if("person".equals(pull.getName()) )  {  int id=new Integer(pull.getAttributeValue(0));  person=new person();  person.setId(id);  }  if("name".equals(pull.getName())){  String name=pull.nextText();  person.setName(name);  }  if("age".equals(pull.getName()))  {  int age=new Integer(pull.nextText());  person.setAge(age);  }  break;  case  XmlPullParser.END_TAG:  if("person".equals(pull.getName()))  {  per.add(person);       person=null;  }  break; }  event= pull.next();  }  return per;  }  /** * 保存数据 * @param persons 数据 * @param out 输出方向 * @param XmlSerializer  * @throws Exception  * @throws IllegalStateException  * @throws IllegalArgumentException  * @throws Exception */  public static void svae(List<person> persons,OutputStream out) throws IllegalArgumentException, IllegalStateException, Exception  {  XmlSerializer ser=Xml.newSerializer();  ser.setOutput(out, "UTF-8");  ser.startDocument("UTF-8", true);  ser.startTag(null, "persons");  for(person person:persons){  ser.startTag(null, "person");  ser.attribute(null, "id", String.valueOf(person.getId()));  ser.startTag(null, "name");  ser.text(person.getName());  ser.endTag(null, "name");  ser.startTag(null, "age");  ser.text(String.valueOf(person.getAge()));  ser.endTag(null, "age");  ser.endTag(null, "person");  }  ser.endTag(null, "persons");  ser.endDocument();  out.flush();  out.close();  }}  
建立person类

package your.xml.domian;public class person {private int Id;private int age;private String name;public int getId() {return Id;}public void setId(int id) {Id = id;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "person [Id=" + Id + ", age=" + age + ", name=" + name + "]";}public person(int id, int age, String name) {super();Id = id;this.age = age;this.name = name;}public person(){}}

一般也是需要单元调试的。单元调试如下

package your.xml.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParserException;import your.xml.domian.person;import your.xml.sour.PersonSour;import android.test.AndroidTestCase;import android.util.Log;import android.util.Xml;public class juntest extends AndroidTestCase {private static final String tag="yuanqing";   public void testperson() throws Exception    {   InputStream xml=this.getClass().getClassLoader().getResourceAsStream("person.xml");  ArrayList<person> persons=PersonSour.getPerson(xml);      for(person per:persons){      Log.i(tag, per.toString());      }      }   public void testSave() throws Exception   {   List<person> persons=new ArrayList<person>();   persons.add(new person(24,80,"zhang san"));   persons.add(new person(11,20,"yuan qing"));   persons.add(new person(2,8,"san"));   persons.add(new person(4,81,"zhg san"));   persons.add(new person(4,10,"zg n"));   File file=new File(getContext().getFilesDir(),"qing.xml");   FileOutputStream out=new FileOutputStream(file);   PersonSour.svae(persons, out);   }}




0 0
原创粉丝点击