
- Java XML 教程
- Java XML 首頁
- Java XML 概述
- Java XML 解析器
- Java DOM 解析器
- Java DOM 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- Java SAX 解析器
- Java SAX 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- JDOM XML 解析器
- JDOM XML 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- Java StAX 解析器
- Java StAX 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- Java XPath 解析器
- Java XPath 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- Java DOM4J 解析器
- Java DOM4J 解析器
- 解析 XML 文件
- 查詢 XML 文件
- 建立 XML 文件
- 修改 XML 文件
- Java XML 有用資源
- Java XML - 問題與解答
- Java XML - 快速指南
- Java XML - 有用資源
- Java XML - 討論
Java DOM4J 解析器 - 建立 XML 文件
Java DOM4J 庫包含用於建立 XML 文件的類、介面和方法。org.dom4j 包中的 Document 和 Element 介面具有建立 XML 文件的方法。org.dom4j.io 包中的 XMLWriter 類將文件的 XML 內容寫入檔案。在本章中,我們將使用這些介面和類來建立 XML 檔案。
使用 Java DOM4J 解析器建立 XML
以下是使用 Java DOM4J 解析器建立 XML 文件的步驟:
- 步驟 1:建立新的文件
- 步驟 2:建立和新增 XML 元素
- 步驟 3:建立 FileOutputStream
- 步驟 4:將 XML 文件寫入檔案
- 步驟 5:列印 XML 文件
步驟 1:建立新的文件
org.dom4j 包的 DocumentHelper 類提供了一些輔助方法來使用 DOM4J。createDocument() 方法建立一個新文件,如下所示:
Document document = DocumentHelper.createDocument();
步驟 2:建立和新增 XML 元素
我們可以使用 addElement() 方法建立根元素並將其新增到 XML 文件中。同樣,我們可以使用相同的 addElement() 方法將子元素新增到根元素中。要新增屬性,我們使用 addAttribute() 方法。
Element root = document.addElement( "root_ele_name" ); Element child = root.addElement("child_ele_name").addAttribute("attr_name", "attr_val");
步驟 3:建立 FileOutputStream
要將 XML 文件的內容複製到檔案中,我們需要建立一個 FileOutputStream,如下所示:
FileOutputStream newFile = new FileOutputStream("D://newDOM4jFile.xml");
步驟 4:將 XML 文件寫入檔案
XMLWriter 類具有 write() 方法,用於將 XML 文件寫入指定的檔案。我們還可以將我們想要新增到內容中的格式作為第二個引數傳遞給 write() 方法。
XMLWriter writer = new XMLWriter(newFile); writer.write( document );
步驟 5:列印 XML 文件
要列印 XML 文件的內容,我們可以將 System.out 作為第一個引數傳遞,將格式作為第二個引數傳遞。createPrettyPrint() 方法在顯示時建立 XML 元素的正確縮排。此步驟是可選的,可用於測試目的。
OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter consoleWriter = new XMLWriter( System.out, format ); consoleWriter.write( document );
建立 XML 檔案
addElement() 方法可以與 Document 或 Element 介面一起使用。此方法將元素名稱作為引數,並將其新增到指定的文件或元素中。要新增根元素,我們使用 Document.addElement(root_ele_name)。
addAttribute() 方法將屬性名稱作為第一個引數,將值作為第二個引數。它將屬性新增到指定的元素中。
addText() 方法將文字內容新增到元素中。它將文字內容作為字串,並將其新增到相應的元素中。
示例
使用上面討論的方法,我們將建立一個 XML 檔案,其中“cars”作為根元素,company 作為其屬性。讓我們新增兩個“carname”元素,其中“type”作為屬性。
我們需要建立以下 cars.xml 檔案:
<?xml version = "1.0" encoding = "UTF-8"?> <cars> <supercars company = "Ferrari"> <carname type = "formula one">Ferrari 101</carname> <carname type = "sports">Ferrari 202</carname> </supercars> </cars>
以下 CreateXMLDemo.java 程式建立一個文件,並使用 addElement() 方法新增元素,使用 addAttribute() 方法新增屬性。要設定文字內容,使用 addText() 方法。文件的 XML 內容被傳輸到一個檔案,並在控制檯上列印。
package java_xml_dom4j; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class CreateDemo { public static void main(String[] args) { try { //Creating a new Document Document document = DocumentHelper.createDocument(); //Creating and Adding XML elements Element root = document.addElement( "cars" ); Element supercarElement = root.addElement("supercars") .addAttribute("company", "Ferrai"); supercarElement.addElement("carname") .addAttribute("type", "Ferrari 101") .addText("Ferrari 101"); supercarElement.addElement("carname") .addAttribute("type", "sports") .addText("Ferrari 202"); //Creating a FileOutputStream FileOutputStream newFile = new FileOutputStream("D://newDOM4jFile.xml"); //Writing the XML document into file XMLWriter writer = new XMLWriter(newFile); writer.write( document ); //Printing the XML document OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter consoleWriter = new XMLWriter( System.out, format ); consoleWriter.write( document ); } catch (Exception e) { e.printStackTrace(); } } }
輸出
輸出視窗顯示 XML 內容如下:
<?xml version = "1.0" encoding = "UTF-8"?> <cars> <supercars company = "Ferrari"> <carname type = "formula one">Ferrari 101</carname> <carname type = "sports">Ferrari 202</carname> </supercars> </cars>