android基础 -实现xml的序列化

来源:互联网 发布:韩国网络电视机顶盒 编辑:程序博客网 时间:2024/05/17 07:30

        xml文件我们肯定都是认识的,比如清单文件,创建资源都用xml文件等。在xml文件中,都是有标签,文本之类的标识。那我们应该如何去实现xml序列化呢?

    我们要知道,在实现xml序列化的时候,要几个点要知道,在xml文件里,一般就是开始文档,结束文档,开始标签,结束标签,文本。下面看代码就知道怎么去编写啦!

  Student.java

package cn.huse.edu.xml.domain;public class Student {private String name;private int age;private int id;public Student(String name, int age, int id) {super();this.name = name;this.age = age;this.id = id;}public Student() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", id=" + id + "]";}}

MainActivity.java

package cn.huse.edu.xml;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Xml;import android.view.View;import cn.huse.edu.xml.domain.Student;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void  createXml(View v){//准备对象集合数据List<Student> stuList = new ArrayList<Student>();stuList.add(new Student("张三", 25, 1));stuList.add(new Student("李四", 48, 2));stuList.add(new Student("王五",23, 3));/** * xml的格式 *  <students> * <student id="1"> * <name>张三</name> * <age>25</age> * </student> * .... * </students> *  *///保存到对象到xml文件中try {//xml序列化XmlSerializer serializer = Xml.newSerializer();//创建输出流   保存在 //data/data/packageName/files/student.xml  //Context.MODE_PRIVATE表示私有文件FileOutputStream os = openFileOutput("student.xml",Context.MODE_PRIVATE);//指定输出流serializer.setOutput(os,"utf-8");//开始文档serializer.startDocument("utf-8", true);//开始标签serializer.startTag(null, "students");for(Student student : stuList){serializer.startTag(null, "student");//属性serializer.attribute(null, "id", student.getId()+"");//name标签serializer.startTag(null, "name");//文本serializer.text(student.getName());serializer.endTag(null, "name");//age标签serializer.startTag(null, "age");//文本serializer.text(student.getAge()+"");serializer.endTag(null, "age");serializer.endTag(null, "student");}//结束标签serializer.endTag(null, "students");//结束文档serializer.endDocument();os.close();} catch (Exception e) {e.printStackTrace();}}}

运行结果



0 0
原创粉丝点击