在《Android 生成xml文件》一文中使用流的形式寫入xml格式文件,但是存在一定的問題,那就是在簡訊內容中不能出現<>之類的括弧,本文使用xml序列化器來解決 xml序列化器對象 XmlSerializer xs = Xml.newSerializer();* 給序列化器設置輸出流 File ...
在《Android 生成xml文件》一文中使用流的形式寫入xml格式文件,但是存在一定的問題,那就是在簡訊內容中不能出現<>之類的括弧,本文使用xml序列化器來解決
xml序列化器對象
XmlSerializer xs = Xml.newSerializer();
* 給序列化器設置輸出流
File file = new File(Environment.getExternalStorageDirectory(), "backupsms.xml");
FileOutputStream fos = new FileOutputStream(file);
//給序列化器指定好輸出流
xs.setOutput(fos, "utf-8");
* 開始生成xml文件
xs.startDocument("utf-8", true);
xs.startTag(null, "smss");
......
代碼如下:
package com.wuyudong.createxml; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlSerializer; import com.wuyudong.createxml.domain.Sms; import com.wuyudong.createxml2.R; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.util.Xml; import android.view.View; public class MainActivity extends Activity { List<Sms> message; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 創建10條虛擬簡訊 message = new ArrayList<Sms>(); for (int i = 0; i < 10; i++) { Sms sms = new Sms("第" + i + "條簡訊", System.currentTimeMillis() + "", "1", "" + i + i + i); message.add(sms); } } public void click(View v) { File file = new File(Environment.getExternalStorageDirectory(), "backup1.xml"); try { FileOutputStream fos = new FileOutputStream(file); // 獲取xml序列化器 XmlSerializer xs = Xml.newSerializer(); xs.setOutput(fos, "utf-8"); //生成xml頭 xs.startDocument("utf-8", true); //添加xml根節點 xs.startTag(null, "message"); for (Sms sms : message) { xs.startTag(null, "sms"); xs.startTag(null, "body"); xs.text(sms.getBody()); xs.endTag(null, "body"); xs.startTag(null, "date"); xs.text(sms.getDate()); xs.endTag(null, "date"); xs.startTag(null, "address"); xs.text(sms.getAddress()); xs.endTag(null, "address"); xs.startTag(null, "type"); xs.text(sms.getType()); xs.endTag(null, "type"); xs.endTag(null, "sms"); } xs.endTag(null, "message"); //生成xml頭 xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }