請先至 http://dom4j.sourceforge.net/ 下載 Dom4j 的 JAR 並加入到您的專案中,目前我用的是 1.6版,最新為 2.0版(除了支持自己的 Dom4j 外,還支持其他Java XML 的類別庫,如:DOM、SAX、JAXP)。
創建XML:
import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.*; import java.nio.charset.Charset; public class XMLTest { public static void main(String[] args) throws Exception { Document doc = DocumentHelper.createDocument(); //------------------------------------------------------ // 前置動作,依需求可省略: doc.addProcessingInstruction("xml", "type=\"user-data\""); // 宣告 /* doc.addDocType(<根元素>,<註冊//組織//類型標籤//定義語言>,<文檔類型定義位置>); * 基本上 <根元素> 名稱要與 doc.addElement() 相同,程式碼第 23 行 */ doc.addDocType("自訂XML", // 網頁這部分會宣告 HTML "-//水果公司//DTD MyXML 1.0//zh-tw", "http://www.w3.org/TR/myXML/DTD/myXML.dtd"); doc.addComment("這是註解"); //------------------------------------------------------ // 建立根元素(父元素): Element root = doc.addElement("自訂XML"); // 建立 <自訂XML> //------------------------------------------------------ // 內容(子元素): Element root_user = root.addElement("用戶"); // 在<根>底下建立 <用戶> root_user.addAttribute("編號", "1"); //建立<用戶>的屬性: 編號="1" root_user.addAttribute("名子", "蘋果"); //建立<用戶>的屬性: 名子="蘋果" root_user.addAttribute("地址", "月球 惠更斯山 之最高峰"); Element root_user_address = root_user.addElement("手機"); root_user_address.addAttribute("電信", "種花電信"); root_user_address.addAttribute("號碼", "091314520"); root_user_address.addText("山寨的 IPhone 5"); // <手機>山寨的 IPhone 5 //----------------------------------------- Element e2 = root.addElement("用戶"); e2.addAttribute("編號", "2"); e2.addAttribute("名子", "香蕉"); e2.addAttribute("地址", "地球 喜馬拉雅山 之最低峰"); Element e2_1 = e2.addElement("手機"); e2_1.addAttribute("電信", "近傳電信"); e2_1.addAttribute("號碼", "0954385478"); e2_1.addText("三爽"); //----------------------------------------- Element e3 = root.addElement("用戶"); e3.addAttribute("編號", "3"); e3.addAttribute("名子", "蓮霧"); e3.addAttribute("地址", "地球 台灣 總統府"); Element e3_1 = e3.addElement("手機"); e3_1.addAttribute("電信", "吃土電信"); e3_1.addAttribute("號碼", "097878787878"); e3_1.addText("HTC Magic 魔術機"); //------------------------------------------------------ // 預覽/輸出 XML,因為不會格式化 XML 所以全部擠在同一行...: System.out.println(doc.asXML()); //------------------------------------------------------ // 儲存 XML 檔案: FileWriter fw = new FileWriter("D:/My.xml"); // 可自訂 // 下面這行:預設自動換行、Tab 為 2 個空白 // OutputFormat of = OutputFormat.createPrettyPrint(); // 格式化XML OutputFormat of = new OutputFormat(); // 格式化XML of.setIndentSize(4); // 設定 Tab 為 4 個空白 of.setNewlines(true);// 設定 自動換行 XMLWriter xw = new XMLWriter(fw, of); xw.write(doc); xw.close(); } }
編譯並執行後,可查看 D:/My.xml(預設) 路徑,會發現已經有新建 XML 檔案,此時用記事本打開會發現沒有換行,但是實際上是有換行的,只是記事本看不懂,所以可以用 IE 或 GOOGLE 瀏覽器 或 IDE 打開,會發現他們是有經過格式化 排版,效果如下:
更多詳細說明可參考:http://www.blogjava.net/junglesong/archive/2008/02/21/181196.html
全站熱搜