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.
This is the sample input for the example:
This is the resulting XML:
// 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();
<?xml version="1.0" encoding="UTF-8"?>
<root>
Here is <b>some</b> text
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
Here is some text
</root>
Post a comment