Tuesday, 13 October 2015

Generate XML using DOM parser


Jar Required: jdom.jar

Directory structure in eclipse:





SKYDOMWriter.java:

package com.sky.parse.dom;

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.Document;
import org.w3c.dom.Element;

public class SKYDOMWriter {
public static void main(String[] args) {
try {
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
Document doc = documentBuilder.newDocument();
Element rootElement = doc.createElement("sky");
doc.appendChild(rootElement);

Element employee = doc.createElement("employee");
rootElement.appendChild(employee);
employee.setAttribute("empid", "101");
Element name = doc.createElement("name");
name.appendChild(doc.createTextNode("Sumit Kumar"));
employee.appendChild(name);
Element email = doc.createElement("email");
email.appendChild(doc.createTextNode("xyz@yahoo.com"));
employee.appendChild(email);

Element employee2 = doc.createElement("employee");
rootElement.appendChild(employee2);
employee2.setAttribute("empid", "102");
Element name2 = doc.createElement("name");
name2.appendChild(doc.createTextNode("Sunil Kumar"));
employee2.appendChild(name2);
Element email2 = doc.createElement("email");
email2.appendChild(doc.createTextNode("skumar102@outlook.com"));
employee2.appendChild(email2);

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("src/sky.xml"));
transformer.transform(source, result);
} catch (Exception e) {
e.printStackTrace();
}
}

}



Output:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sky>
<employee empid="101">
<name>Sumit Kumar</name>
<email>xyz@yahoo.com</email>
</employee>
<employee empid="102">
<name>Sunil Kumar</name>
<email>skumar102@outlook.com</email>
</employee>
</sky>

No comments:

Post a Comment