So erstellen Sie eine XML-Datei in Java - (DOM Parser)
DOM bietet viele nützliche Klassen, um XML-Dateien einfach zu erstellen. Zunächst müssen Sie ein Dokument mit der KlasseDocumentBuildererstellen, den gesamten XML-Inhalt definieren - Knoten, Attribut mit der KlasseElement. Verwenden Sie zuletzt die KlasseTransformer, um den gesamten XML-Inhalt für die Stream-Ausgabe auszugeben, normalerweise eine Datei.
In diesem Tutorial zeigen wir Ihnen, wie Sie mit dem DOM-XML-Parser eine XML-Datei erstellen.
DOM-Parser-Beispiel
Am Ende des Beispiels wird die folgende XML-Datei mit dem Namen "file.xml" erstellt.
yong mook kim example 100000
File : WriteXMLFile.java - Java-Klasse zum Erstellen einer XML-Datei.
package com.example.core; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; 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.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; public class WriteXMLFile { public static void main(String argv[]) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements Document doc = docBuilder.newDocument(); Element rootElement = doc.createElement("company"); doc.appendChild(rootElement); // staff elements Element staff = doc.createElement("Staff"); rootElement.appendChild(staff); // set attribute to staff element Attr attr = doc.createAttribute("id"); attr.setValue("1"); staff.setAttributeNode(attr); // shorten way // staff.setAttribute("id", "1"); // firstname elements Element firstname = doc.createElement("firstname"); firstname.appendChild(doc.createTextNode("yong")); staff.appendChild(firstname); // lastname elements Element lastname = doc.createElement("lastname"); lastname.appendChild(doc.createTextNode("mook kim")); staff.appendChild(lastname); // nickname elements Element nickname = doc.createElement("nickname"); nickname.appendChild(doc.createTextNode("example")); staff.appendChild(nickname); // salary elements Element salary = doc.createElement("salary"); salary.appendChild(doc.createTextNode("100000")); staff.appendChild(salary); // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("C:\\file.xml")); // Output to console for testing // StreamResult result = new StreamResult(System.out); transformer.transform(source, result); System.out.println("File saved!"); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (TransformerException tfe) { tfe.printStackTrace(); } } }
Eine neue XML-Datei wird in „C:\file.xml“ erstellt, wobei die Standard-UTF-8-Codierung verwendet wird.
Note
Zum Debuggen können SieStreamResult ändern, um den XML-Inhalt an Ihre Konsole auszugeben.
StreamResult result = new StreamResult(System.out); transformer.transform(source, result);