Android中XML格式資料的簡單使用

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   color   ar   os   使用   

 源碼:

package com.wangzhu.demo;import java.io.IOException;import java.io.StringWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import android.content.Context;/** * XML,即可延伸標記語言 (XML)(Extensible Markup Language),<br/> * 標準通用標記語言 (SGML)的子集,一種用於標記電子檔案使其具有結構性的標記語言。<br/> * 它可以用來標記資料、定義資料類型,是一種允許使用者對自己的標記語言進行定義的源語言。<br/> * 它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的機構化資料。<br/> *  * 特點:<br/> * XML是一種標記語言,很類似HTML<br/> * XML的設計宗旨是傳輸資料,而非顯示資料<br/> * XML標籤沒有被預定義,您需要自行定義標籤<br/> * XML被設計為具有自我描述性<br/> * XML是W3C的推薦標準<br/> *  * 與HTML對比:<br/> * XML不是HTML的替代。<br/> * XML和HTML為不同的目的而設計:<br/> * XML被設計為傳輸和儲存資料,其焦點是資料的內容。<br/> * HTML被設計用來顯示資料,其焦點是資料的外觀。<br/> * HTML旨在顯示資訊,而XML旨在傳輸資訊。<br/> *  * XML的文法規則:<br/> * 在XML中,省略關閉標籤是非法的,所有元素都必須有關閉標籤。<br/> * XML標籤對大小寫敏感<br/> * XML必須正確地嵌套<br/> * XML文檔必須有根項目<br/> * XML的屬性值須加引號<br/> * XML中空格會被保留<br/> *  * 使用Android平台內建的API載入XML資料,並且按照XML的結構將所有資料解析出來<br/> *  * 使用Android平台內建的API建立符合XML規範的資料,並且將XML資料輸出。<br/> *  * @author wangzhu * @date 2014年11月15日 下午11:38:10 */public class XMLUtils {    private Context context;    public XMLUtils(Context context) {        this.context = context;    }    /**     * 讀取XML檔案     */    public void readXML() {        StringBuilder accum = new StringBuilder();        try {            DocumentBuilderFactory builderFactory = DocumentBuilderFactory                    .newInstance();            DocumentBuilder builder = builderFactory.newDocumentBuilder();            Document document = builder.parse(context.getAssets().open(                    "languages.xml"));            // 擷取Languages標籤            Element element = document.getDocumentElement();            accum.append("cat=").append(element.getAttribute("cat"))                    .append(",");            NodeList list = element.getElementsByTagName("lan");            for (int i = 0; i < list.getLength(); i++) {                // 擷取每個lan標籤                Element lan = (Element) list.item(i);                accum.append("id=").append(lan.getAttribute("id")).append(",");                accum.append("ide=")                        .append(lan.getElementsByTagName("ide").item(0)                                .getTextContent()).append(",");                accum.append("name=")                        .append(lan.getElementsByTagName("name").item(0)                                .getTextContent()).append(";");            }            System.err.println("readXml: " + accum);        } catch (ParserConfigurationException e) {            e.printStackTrace();        } catch (SAXException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 建立XML檔案     */    public void createXML() {        try {            DocumentBuilderFactory builderFactory = DocumentBuilderFactory                    .newInstance();            DocumentBuilder builder = builderFactory.newDocumentBuilder();            // 建立文檔對象            Document document = builder.newDocument();            // 建立根項目            Element languages = document.createElement("Languages");            languages.setAttribute("cat", "it");            // 使用文檔對象建立第一個子項目            Element lan1 = document.createElement("lan");            lan1.setAttribute("id", "1");            Element name1 = document.createElement("name");            name1.setTextContent("Java");            // 添加子項目            lan1.appendChild(name1);            Element ide1 = document.createElement("ide");            ide1.setTextContent("Eclipse");            // 添加子項目            lan1.appendChild(ide1);            // 添加到根項目中            languages.appendChild(lan1);            // 使用文檔對象建立第一個子項目            Element lan2 = document.createElement("lan");            lan2.setAttribute("id", "2");            Element name2 = document.createElement("name");            name2.setTextContent("Swift");            // 添加子項目            lan2.appendChild(name2);            Element ide2 = document.createElement("ide");            ide2.setTextContent("Xcode");            // 添加子項目            lan2.appendChild(ide2);            // 添加到根項目中            languages.appendChild(lan2);            // 使用文檔對象建立第一個子項目            Element lan3 = document.createElement("lan");            lan3.setAttribute("id", "3");            Element name3 = document.createElement("name");            name3.setTextContent("C#");            // 添加子項目            lan3.appendChild(name3);            Element ide3 = document.createElement("ide");            ide3.setTextContent("Visual Studio");            // 添加子項目            lan3.appendChild(ide3);            // 添加到根項目中            languages.appendChild(lan3);            // 將languages作為根項目添加到文檔中            document.appendChild(languages);            // 轉化            TransformerFactory transformerFactory = TransformerFactory                    .newInstance();            Transformer transformer = transformerFactory.newTransformer();            transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");            StringWriter sw = new StringWriter();            transformer                    .transform(new DOMSource(document), new StreamResult(sw));            System.err.println("createXML: " + sw.toString());        } catch (ParserConfigurationException e) {            e.printStackTrace();        } catch (TransformerConfigurationException e) {            e.printStackTrace();        } catch (TransformerException e) {            e.printStackTrace();        }    }}

 :

Xml檔案:

Android中XML格式資料的簡單使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.