Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 使用xml序列化器生成xml文件,android序列化

Android 使用xml序列化器生成xml文件,android序列化

編輯:關於android開發

Android 使用xml序列化器生成xml文件,android序列化


在《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();
        }
    }

}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved