dom parser to create xml file in java

The DOM refers to Document Object Model. The DOM parses the XML file, creates the DOM objects and loads it into the memory in the tree structure.
Note: DOM is simple and easy to use but it consume lots of memory and slow.
The XML refers to the EXtensible Markup Language which is used to store and transport the data. XML not provides any predefined tags. We have to define our own tags. Every opening XML tag must have a closing tag. XML tags are case sensitive and must be completely nested.

Steps to create a new XML file:

1. Create a Document with DocumentBuilder class.
2. Define the XML data using Element class.
3. Write the whole data on a file using Transformer class.

Example:

DOMParserCreateTest.java
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
 
/**
* This class is used to create XML document using DOM parser.
* @author javawithease
*/

public class DOMParserCreateTest {
public static void main(String args[]) {
try {
//File Path
String filePath = "D:\\class.xml";
 
//Create DocumentBuilderFactory object.
DocumentBuilderFactory dbFactory =
DocumentBuilderFactory.newInstance();
 
//Get DocumentBuilder object.
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
 
//Get Document object.
Document document = dBuilder.newDocument();
 
//Define root element.
Element rootElement = document.createElement("class");
document.appendChild(rootElement);
 
//Define students element.
Element students = document.createElement("students");
rootElement.appendChild(students);
 
//Set attribute to element.
Attr attr = document.createAttribute("className");
attr.setValue("MCA");
students.setAttributeNode(attr);
 
//Define StudentName elements.
Element student1 = document.createElement("studentName");
student1.appendChild(document.createTextNode("Prabhjot"));
students.appendChild(student1);
 
Element student2 = document.createElement("studentName");
student2.appendChild(document.createTextNode("Nidhi Gupta"));
students.appendChild(student2);
 
//Write content into XML file.
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filePath));
transformer.transform(source, result);
 
//For console Output.
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Output:

<?xml version="1.0" encoding="UTF-8"?>
<class>
<students className="MCA">
<studentName>Prabhjot</studentName>
<studentName>Nidhi Gupta</studentName>
</students>
</class>

No comments: