Android基礎--XML序列化(XmlSerializer)

來源:互聯網
上載者:User

標籤:android   style   blog   io   ar   color   os   sp   java   

1.封裝節點的JavaBean

public class City {    private String name;    private String temp;    private String pm25;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getTemp() {        return temp;    }    public void setTemp(String temp) {        this.temp = temp;    }    public String getPm25() {        return pm25;    }    public void setPm25(String pm25) {        this.pm25 = pm25;    }    @Override    public String toString() {        return "City [name=" + name + ", temp=" + temp + ", pm25=" + pm25 + "]";    }    public City(String name, String temp, String pm25) {        super();        this.name = name;        this.temp = temp;        this.pm25 = pm25;    }    public City() {        super();    }    }

 

2.產生xml的MainActivity.java ,其中createXmlFile是綁定在一個Button控制項上的點擊事件

package com.itheima.xmlserializer;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.util.Xml;import android.view.View;import com.itheima.xmlserializer.domain.City;public class MainActivity extends Activity {    List<City> cityList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cityList = new ArrayList<City>();        City city = null;        for (int i = 0; i < 5; i++) {            city = new City("城市" + i, 20 + i + "", 100 + i + "");            cityList.add(city);        }    }    public void createXmlFile(View v) {        // 判斷當前SD卡是否可用        if (Environment.getExternalStorageState().equals(                Environment.MEDIA_MOUNTED)) {            // 指定存放xml檔案的位置            File file = new File(Environment.getExternalStorageDirectory(),                    "info.xml");            // 獲得XML序列化器            XmlSerializer xs = Xml.newSerializer();            OutputStream os = null;            try {                //OutputStream :指定檔案的儲存路徑                //encoding:指定產生的xml檔案的編碼                os = new FileOutputStream(file);                xs.setOutput(os, "UTF-8");                // 開始組建檔案                // 設定xml檔案第一行<?xml encoding = ? standalone=?>                xs.startDocument("UTF-8", true);                //產生根節點開始標籤                xs.startTag(null, "weather");                for (City city : cityList) {                    xs.startTag(null, "city");                                        xs.startTag(null, "name");                    //產生文本節點                    xs.text(city.getName());                    xs.endTag(null, "name");                                        xs.startTag(null, "temp");                    //產生文本節點                    xs.text(city.getTemp());                    xs.endTag(null, "temp");                                        xs.startTag(null, "pm25");                    //產生文本節點                    xs.text(city.getPm25());                    xs.endTag(null, "pm25");                                        xs.endTag(null, "city");                }                //產生根節點結束標籤                xs.endTag(null, "weather");                xs.endDocument();            } catch (Exception e) {                throw new RuntimeException(e);            }        }    }}

 

3.產生的XML檔案如下,因為沒有換行,所有可讀性差一些

<?xml version=‘1.0‘ encoding=‘UTF-8‘ standalone=‘yes‘ ?><weather><city><name>城市0</name><temp>20</temp><pm25>100</pm25></city><city><name>城市1</name><temp>21</temp><pm25>101</pm25></city><city><name>城市2</name><temp>22</temp><pm25>102</pm25></city><city><name>城市3</name><temp>23</temp><pm25>103</pm25></city><city><name>城市4</name><temp>24</temp><pm25>104</pm25></city></weather>

 

Android基礎--XML序列化(XmlSerializer)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.