標籤:xml java
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>
Java寫入xml (1)