How to create XML file in Java
In this tutorial, we show how to create a new XML file using DOM parser provided by JDK.
We’re going to create an XML called students.xml which lists students along with their basic information.
1- Create XML using Transformer
The following code snippet appends 3 student elements to a root element called students and then transforms the document object to a pretty XML file using transform() method of Transformer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | private static void createPrettyXMLUsingDOM() { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); // students root element Element rootElement = doc.createElement("students"); doc.appendChild(rootElement); // student elements for(int i=1; i<=3; i++) { Element student = doc.createElement("student"); Element studentName = doc.createElement("name"); studentName.setTextContent("Hussein " + i); student.setAttribute("id", String.valueOf(i)); student.appendChild(studentName); rootElement.appendChild(student); } // Write the content into XML file DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("students-new.xml")); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); // Beautify the format of the resulted XML transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(source, result); } catch(Exception ex) { ex.printStackTrace(); } } |
2- Output
After executing the above code, you should get the following XML:
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> <students> <student id="1"> <name>Hussein 1</name> </student> <student id="2"> <name>Hussein 2</name> </student> <student id="3"> <name>Hussein 3</name> </student> </students> |
3- Source Code
You can download the source code from this repository: Read-XML
P.S: Refer to How to read XML file in Java to check how to read and parse an existing XML using DOM parser.