Removing all text nodes from a given node

N

Narokman

I've written a method that is supposed to remove all text nodes from a
given node and also from its child nodes. The given node is, for
example,
created from following XML:
--------------
<?xml version="1.0" encoding="utf-8" ?>

<L1>L1 Text
<L2>L2 Text
<L3>L3 Text</L3>
</L2>
<L2_1>L2_1 Text</L2_1>
<L2_2>L2_2 Text</L2_2>
</L1>
--------------

The method I've written is :

--------------
public static void removeEmptyText(org.w3c.dom.Node n) {
org.w3c.dom.NodeList nodeList = n.getChildNodes();

for (int i = 0; i < nodeList.getLength(); i++) {
org.w3c.dom.Node node = nodeList.item(i);
int type = node.getNodeType();


// if (type == ELEMENT_TYPE) {
if (node.hasChildNodes()) {
removeEmptyText(node);
}else if (type == TEXT_TYPE) {
n.removeChild(node);
}
}//End of for-loop
}
--------------

This method only works for removing text nodes in the "L1" level.
It fails to remove text nodes in child nodes of "L1".
Any ideas?
If anybody has better way to remove text nodes from a node, I would
also really appreciated.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,015
Latest member
AmbrosePal

Latest Threads

Top