您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān) android sax創(chuàng)建xml文件的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
具體的如何使用sax創(chuàng)建xml,在程序中都加了相關(guān)的注釋,還是直接上代碼.
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文件 // 實現(xiàn)此接口的對象包含構(gòu)建轉(zhuǎn)換結(jié)果樹所需的信息 Result resultXml = new StreamResult(output); // 用來得到XML字符串形式 // 一個字符流,可以用其回收在字符串緩沖區(qū)中的輸出來構(gòu)造字符串 StringWriter writerStr = new StringWriter(); // 構(gòu)建轉(zhuǎn)換結(jié)果樹所需的信息。 Result resultStr = new StreamResult(writerStr); // 創(chuàng)建SAX轉(zhuǎn)換工廠 SAXTransformerFactory sff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); // 轉(zhuǎn)換處理器,偵聽 SAX ContentHandler // 解析事件,并將它們轉(zhuǎn)換為結(jié)果樹 Result TransformerHandler th = sff.newTransformerHandler(); // 將源樹轉(zhuǎn)換為結(jié)果樹 Transformer transformer = th.getTransformer(); // 設(shè)置字符編碼 transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 是否縮進 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // 設(shè)置與用于轉(zhuǎn)換的此 TransformerHandler 關(guān)聯(lián)的 Result // 注:這兩個th.setResult不能同時啟用 th.setResult(resultXml); // th.setResult(resultStr); //創(chuàng)建根元素<calsses>,并設(shè)置其屬性為空 th.startDocument(); AttributesImpl attr = new AttributesImpl(); th.startElement("", "calsses", "calsses", attr); //創(chuàng)建一級子元素<group>,并設(shè)置其屬性 attr.clear(); attr.addAttribute("","name", "name", "", "一年級"); attr.addAttribute("","num", "num", "", "10"); th.startElement("", "", "group", attr); //創(chuàng)建二級子元素<person>,并設(shè)置其屬性 attr.clear(); attr.addAttribute("","name", "name", "", "小明"); attr.addAttribute("","age", "age", "", "7"); th.startElement("", "", "person", attr); //創(chuàng)建三級子元素<chinese>,并設(shè)置其值 attr.clear(); th.startElement("", "", "chinese", attr); th.characters("語文90".toCharArray(), 0, "語文90".length()); th.endElement("", "", "chinese"); //創(chuàng)建三級子元素<english>,并設(shè)置其值 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; } }
調(diào)用這個方法即可實現(xiàn)創(chuàng)建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>
關(guān)于“ android sax創(chuàng)建xml文件的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。