Tuesday, 13 October 2015

Delete data in XML using DOM Parser

Jar Required: jdom.jar

Directory structure in eclipse:

XML before Updation:

<?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>

SKYDOMDeleter.java:

package com.sky.parse.dom;

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.Node;
import org.w3c.dom.NodeList;

public class SKYDOMDeleter {
public static void main(String arg[]) {
try {
DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
Document document = documentBuilder.parse("src/sky.xml");
Node employee = document.getElementsByTagName("employee").item(0);
NodeList list = employee.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
if ("email".equals(node.getNodeName())) {
employee.removeChild(node);
}
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult("src/sky.xml");
transformer.transform(source, result);
} catch (Exception e) {
e.printStackTrace();
}
}
}

XML After Updation:


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

</sky>

No comments:

Post a Comment