Merging Text Nodes in a DOM Document

This example removes an element node and inserts its children nodes into the element node's parent. This can cause two text nodes to be adjacent. Normalizing the document merges adjacent text nodes into one and removes empty text nodes.
// Obtain a document; this method is implemented in // The Quintessential Program to Create a DOM Document from an XML File Document doc = parseXmlFile("infilename.xml", false); // Obtain the root element to remove Element element = (Element)doc.getElementsByTagName("b").item(0); // Get the parent of the element Node parent = element.getParentNode(); // Move all children of the element in front of the element while (element.hasChildNodes()) { parent.insertBefore(element.getFirstChild(), element); } // Remove the element parent.removeChild(element); // Merge all text nodes under the parent parent.normalize();
This is the sample input for the example:
<?xml version="1.0" encoding="UTF-8"?> <root> Here is <b>some</b> text </root>
This is the resulting XML:
<?xml version="1.0" encoding="UTF-8"?> <root> Here is some text </root>

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.