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>