Java Xml 简明教程
Java DOM4J Parser - Create XML Document
Java DOM4J 库具有创建 XML 文档的类、接口和方法。org.dom4j 包的 Document 和 Element 接口具有创建 XML 文档的方法。org.dom4j.io 包的 XMLWriter 类将文档的 XML 内容写入文件。在本章中,我们将使用这些接口和类创建 XML 文件。
Create XML Using Java DOM4J Parser
以下是使用 Java DOM4J 解析器创建 XML 文档的步骤 −
-
步骤 1: 创建新文档
-
步骤 2: 创建和添加 XML 元素
-
步骤 3: 创建 FileOutputStream
-
步骤 4: 将 XML 文档写入文件
-
步骤 5: 打印 XML 文档
Step 1: Creating a new Document
org.dom4j 包中的 DocumentHelper 类提供了使用 DOM4J 的帮助器方法。createDocument() 方法如下创建新文档:
Document document = DocumentHelper.createDocument();
Step 2: Creating and Adding XML elements
我们可以使用 addElement() 方法创建根元素并将其添加到 XML 文档。此外,我们可以使用同一个 addElement() 方法将子元素添加到根元素。要添加属性,我们使用 addAttribute() 方法。
Element root = document.addElement( "root_ele_name" );
Element child = root.addElement("child_ele_name").addAttribute("attr_name", "attr_val");
Step 3: Creating a FileOutputStream
要将 XML 文档的内容复制到文件中,我们需要如下创建一个 FileOutputStream:
FileOutputStream newFile = new FileOutputStream("D://newDOM4jFile.xml");
Creating XML file
addElement() 方法可与 Document 或 Element 接口配合使用。此方法将元素的名称作为参数,并将其添加到指定的文档或元素中。要添加根元素,我们使用 Document.addElement(root_ele_name)。
addAttribute() 方法将属性名称作为第一个参数,将值作为第二个参数。它将属性添加到指定的元素。
addText() 方法向元素添加文本内容。它将文本内容作为 String,并添加到相应的元素。
Example
使用上面讨论的方法,我们将创建一个 XML 文件,其根元素为“cars”,公司为其属性。让我们添加两个“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();
}
}
}