在这篇文章中,我们将学习如何使用DOM XML Parser
在Java中创建一个XML文件。DOM提供了许多方便的类来轻松创建一个XML文件。首先,你必须用DocumentBuilder
类创建一个Document
,用Element
类定义所有的XML内容-节点,属性。最后,使用Transformer
类将整个XML内容输出到流输出,通常是一个文件。
users.xml
输出文件在这个例子的最后,将创建以下名为 "users.xml "的XML文件。
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<Users>
<User id="1">
<firstName>Ramesh</firstName>
<lastName>Fadatare</lastName>
<age>28</age>
<gender>Male</gender>
</User>
<User id="2">
<firstName>John</firstName>
<lastName>Cena</lastName>
<age>45</age>
<gender>Male</gender>
</User>
<User id="3">
<firstName>Tom</firstName>
<lastName>Cruise</lastName>
<age>40</age>
<gender>Male</gender>
</User>
</Users>
让我们使用DOM解析器创建一个程序来在Java中创建一个XML文件。
package net.javaguides.javaxmlparser.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class CreateXMLFileInJava {
public static void main(String[] args) {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// add elements to Document
Element rootElement = doc.createElement("Users");
// append root element to document
doc.appendChild(rootElement);
// append first child element to root element
rootElement.appendChild(createUserElement(doc, "1", "Ramesh", "Fadatare", "28", "Male"));
// append second child
rootElement.appendChild(createUserElement(doc, "2", "John", "Cena", "45", "Male"));
// append third child
rootElement.appendChild(createUserElement(doc, "3", "Tom", "Cruise", "40", "Male"));
// for output to file, console
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
// for pretty print
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
// write to console or file
StreamResult console = new StreamResult(System.out);
StreamResult file = new StreamResult(new File("create_users.xml"));
// write data
transformer.transform(source, console);
transformer.transform(source, file);
} catch (Exception e) {
e.printStackTrace();
}
}
private static Node createUserElement(Document doc, String id, String firstName, String lastName, String age,
String gender) {
Element user = doc.createElement("User");
// set id attribute
user.setAttribute("id", id);
// create firstName element
user.appendChild(createUserElements(doc, user, "firstName", firstName));
// create lastName element
user.appendChild(createUserElements(doc, user, "lastName", lastName));
// create age element
user.appendChild(createUserElements(doc, user, "age", age));
// create gender element
user.appendChild(createUserElements(doc, user, "gender", gender));
return user;
}
// utility method to create text node
private static Node createUserElements(Document doc, Element element, String name, String value) {
Element node = doc.createElement(name);
node.appendChild(doc.createTextNode(value));
return node;
}
}
上述程序的一个输出:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Users>
<User id="1">
<firstName>Ramesh</firstName>
<lastName>Fadatare</lastName>
<age>28</age>
<gender>Male</gender>
</User>
<User id="2">
<firstName>John</firstName>
<lastName>Cena</lastName>
<age>45</age>
<gender>Male</gender>
</User>
<User id="3">
<firstName>Tom</firstName>
<lastName>Cruise</lastName>
<age>40</age>
<gender>Male</gender>
</User>
</Users>
注意,为了调试,你可以改变StreamResult
来输出XML内容到你的控制台。
写到控制台或文件:
StreamResult console = new StreamResult(System.out);
StreamResult file = new StreamResult(new File("create_users.xml"));
transformer.transform(source, console); // to console
transformer.transform(source, file); // to file
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/10/how-to-create-xml-file-in-java-dom-parser.html
内容来源于网络,如有侵权,请联系作者删除!