溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android sax創建xml文件的方法

發布時間:2021-01-27 09:33:07 來源:億速云 閱讀:182 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關 android sax創建xml文件的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體的如何使用sax創建xml,在程序中都加了相關的注釋,還是直接上代碼.

package cn.com.sax;  
  
import java.io.OutputStream;  
import java.io.StringWriter;  
  
import javax.xml.transform.OutputKeys;  
import javax.xml.transform.Result;  
import javax.xml.transform.Transformer;  
import javax.xml.transform.TransformerConfigurationException;  
import javax.xml.transform.sax.SAXTransformerFactory;  
import javax.xml.transform.sax.TransformerHandler;  
import javax.xml.transform.stream.StreamResult;  
  
import org.xml.sax.SAXException;  
import org.xml.sax.helpers.AttributesImpl;  
  
import android.util.Log;  
  
class SxaCreateXml {  
    /**  
     * SAX方式生成XML  
     *   
     * @param list  
     * @return  
     */  
    public String saxToXml(OutputStream output) {  
        String xmlStr = null;  
        try {  
            // 用來生成XML文件  
            // 實現此接口的對象包含構建轉換結果樹所需的信息  
            Result resultXml = new StreamResult(output);  
  
            // 用來得到XML字符串形式  
            // 一個字符流,可以用其回收在字符串緩沖區中的輸出來構造字符串  
            StringWriter writerStr = new StringWriter();  
            // 構建轉換結果樹所需的信息。  
            Result resultStr = new StreamResult(writerStr);  
  
            // 創建SAX轉換工廠  
            SAXTransformerFactory sff = (SAXTransformerFactory) SAXTransformerFactory  
                    .newInstance();  
            // 轉換處理器,偵聽 SAX ContentHandler  
            // 解析事件,并將它們轉換為結果樹 Result  
            TransformerHandler th = sff.newTransformerHandler();  
            // 將源樹轉換為結果樹  
            Transformer transformer = th.getTransformer();  
            // 設置字符編碼  
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");  
            // 是否縮進  
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");  
  
            // 設置與用于轉換的此 TransformerHandler 關聯的 Result  
            // 注:這兩個th.setResult不能同時啟用  
             th.setResult(resultXml);  
//           th.setResult(resultStr);  
            //創建根元素<calsses>,并設置其屬性為空  
            th.startDocument();  
            AttributesImpl attr = new AttributesImpl();  
            th.startElement("", "calsses", "calsses", attr);  
              
            //創建一級子元素<group>,并設置其屬性  
            attr.clear();  
            attr.addAttribute("","name", "name", "", "一年級");  
            attr.addAttribute("","num", "num", "", "10");  
            th.startElement("", "", "group", attr);  
            //創建二級子元素<person>,并設置其屬性  
            attr.clear();  
            attr.addAttribute("","name", "name", "", "小明");  
            attr.addAttribute("","age", "age", "", "7");  
            th.startElement("", "", "person", attr);  
            //創建三級子元素<chinese>,并設置其值  
            attr.clear();  
            th.startElement("", "", "chinese", attr);  
            th.characters("語文90".toCharArray(), 0, "語文90".length());  
            th.endElement("", "", "chinese");  
            //創建三級子元素<english>,并設置其值  
            th.startElement("", "", "english", attr);  
            th.characters("英語80".toCharArray(), 0, "英語80".length());  
            th.endElement("", "", "english");  
              
            th.endElement("", "", "person");  
            th.endElement("", "", "group");  
            th.endElement("", "calsses", "calsses");  
            th.endDocument();  
            xmlStr = writerStr.getBuffer().toString();  
        } catch (TransformerConfigurationException e) {  
            Log.e("TEST", ""+e.toString());  
        } catch (SAXException e) {  
            Log.e("TEST", ""+e.toString());  
        } catch (Exception e) {  
            Log.e("TEST", ""+e.toString());  
        }  
        Log.e("TEST","生成的"+xmlStr);  
        return xmlStr;  
    }  
}

調用這個方法即可實現創建xml文件的目的。

new SxaCreateXml().saxToXml(openFileOutput("sax.xml",  Context.MODE_PRIVATE));

生成的sax.xml文件還是在data/data/cn.xxx.xxx/files文件夾下。

<?xml version="1.0" encoding="UTF-8"?>
<calsses>  
<group name="一年級" num="10">  
<person name="小明" age="7">  
<chinese>語文90</chinese>  
<english>英語80</english>  
</person>  
</group>  
</calsses>

關于“ android sax創建xml文件的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女