1. 程式人生 > >Android-Xml檔案生成,Xml資料格式寫入

Android-Xml檔案生成,Xml資料格式寫入

 

生成xml檔案格式資料,Android提供了Xml.newSerializer();,可以理解為Xml序列化;

序列化:把記憶體裡面的資料(file,databases,xml 等等) 丟給某一個地方;
反序列化:把某個地方的資料(file,databases,xml 等等),拿到記憶體中;

既然是Android操作Xml,就用Android所提供的API,不用Java所提供的API,DOM解析,SAX解析了;

@Override
    public void onClick(View v) {

        // 模擬20條Person資料
        List<Person> persons = new
ArrayList<Person>(); for (int i=0; i<20; i++) { persons.add(new Person(i, "zhangsan" + i, i+10)); } Log.d(TAG, "persons.size():" + persons.size()); // persons.size():20 try { // 如何建立xml檔案,然後把這20條資料,寫入xml檔案裡面去,一定是去看Android提供的API XmlSerializer serializer = Xml.newSerializer();
// 指定流目錄 OutputStream os = openFileOutput("persons.xml", Context.MODE_PRIVATE); // 設定指定目錄 serializer.setOutput(os, "UTF-8"); // 開始寫入Xml格式資料 // 開始文件 // 引數一:指定編碼格式 引數二:是不是獨立的xml(這個xml與其他xml是否有關聯) serializer.startDocument("UTF-8", true
); // 開始根標籤 // 引數一:名稱空間 引數二:標籤名稱 serializer.startTag(null, "persons"); for (Person person : persons) { // 開始子標籤 serializer.startTag(null, "person"); // 設定屬性 serializer.attribute(null, "id", String.valueOf(person.getId())); // 設定name // 開始name標籤 serializer.startTag(null, "name"); // 寫入值 serializer.text(person.getName()); // 結束name標籤 serializer.endTag(null, "name"); // 設定age // 開始age標籤 serializer.startTag(null, "age"); // 寫入age值 serializer.text(String.valueOf(person.getAge())); // 結束age標籤 serializer.endTag(null, "age"); // 結束子標籤 serializer.endTag(null, "person"); } // 結束根標籤 serializer.endTag(null, "persons"); // 結束文件 serializer.endDocument(); }catch (Exception e) { e.printStackTrace(); } }

 

執行後的結果: 
這裡寫圖片描述

 

 

開啟看看: 
這裡寫圖片描述