Java寫入xml (1)

Java寫入xml (1)

趙振江

Java代碼創建XML文件

主要類 
DocumentBuilder、DocumentBuilderFactory、Document、TransformerFactory、Transformer、DOMSource、StreamResult

代碼示例

CreateXml.java

package demo;

import java.io.File;

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.Element;

public class CreateXml {
    // 創建DocumentBuilder
    public static DocumentBuilder getDocumentBuilder() {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        DocumentBuilder docb = null;
        try {
            docb = dbf.newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return docb;
    }
    public static boolean create(){
        //獲取DocumentBuilder 對象
        DocumentBuilder docb=getDocumentBuilder();
        //創建Document對象   w3c
        org.w3c.dom.Document doc=docb.newDocument();
        //設置document格式
        doc.setXmlStandalone(true);
        //創建子節點 
        //首先創建 根節點 
        Element MusicType =doc.createElement("MusicType");
        Element name=doc.createElement("music");
        Element pop=doc.createElement("pop");
        //設置 子節點 文本內容 
        name.setTextContent("民謠 ");
        //爲某些子節點設置屬性
        name.setAttribute("id", "1");
        pop.setTextContent("小衆");
        //將目標 子節點 添加到目標根節點
//      MusicType.appendChild(name);
//      MusicType.appendChild(pop);
        name.appendChild(pop);
        MusicType.appendChild(name);
        //將根節點添加到xml docment裏面去 
        doc.appendChild(MusicType);
        //創建 TransformerFactory
        TransformerFactory tff=TransformerFactory.newInstance();
        //創建Transformer對象 
        try {
            Transformer tf=tff.newTransformer();
            tf.setOutputProperty(OutputKeys.INDENT, "yes");
            tf.transform(new DOMSource(doc), new StreamResult(new File("music.xml")));
            return true;
        } catch (TransformerConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return false;
    }



    public static void main(String[] args) {
        if(CreateXml.create())
            System.out.println("創建成功!");
        else
            System.out.println("創建失敗!");

    }

}

[執行成功後] 建議右鍵Refresh下自己的工程,會在工程的根目錄下發現以下文件 
music.xml

<?xml version="1.0" encoding="UTF-8"?>
<MusicType>
<music id="1">民謠 <pop>小衆</pop>
</music>
</MusicType>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章