Home Tutorial Java Xml Java XML modification

 
 

Java XML modification
Posted on: April 26, 2010 at 12:00 AM
This section explain you how to modify the xml file using DOM parser.

Java XML modification

This section explain you how to modify the xml file using DOM parser. For this purpose, you have to use DocumentBuilderFactory, DocumentBuilder and Document classes to get the default DOM parser and parse the xml file. Then call the function delNode() that finds the specified node from the node list and remove it along with its value. 
The object of Document type is then passed in the DOMSource() constructor. Create a StreamResult  object to generate the result. The transform() method of Transformer class takes the Source and StreamResult objects and it processes the source tree to the output .

Here is the data.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<Person>
<FirstName>Angelina</FirstName>
<
LastName>Jolie</LastName>
<Address>Delhi</Address>
<ContactNo>111111</ContactNo>

<FirstName>Julia</FirstName>
<
LastName>Roberts</LastName>
<
Address>Mumbai</Address>
<
ContactNo>222222</ContactNo>

<
/Person>

Here is the code:

import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

public class Delete {
	static Transformer tFormer;
	static DocumentBuilder builder;
	static Document document;

	public static void main(String[] args) {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		TransformerFactory tFactory = TransformerFactory.newInstance();
		try {
			tFormer = tFactory.newTransformer();
			builder = factory.newDocumentBuilder();
			document = builder.parse(new File("data.xml"));
			delNode(document, "ContactNo");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void delNode(Node parent, String filter) {
		try {
			NodeList children = parent.getChildNodes();

			for (int i = 0; i < children.getLength(); i++) {
				Node child = children.item(i);

				if (child.getNodeType() == Node.ELEMENT_NODE) {

					if (child.getNodeName().equals(filter)) {
						parent.removeChild(child);
					} else {
						delNode(child, filter);
					}
				}
			}
			Source source = new DOMSource(document);
			StreamResult dest = new StreamResult("data.xml");
			tFormer.transform(source, dest);
		} catch (Exception e) {
		}
	}

}

Related Tags for Java XML modification:


Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.