您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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文件的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。