Removing All the Attributes in a DOM Element

The tricky part of removing all the attributes in an XML element is to realize that attributes with a default value cannot be removed. Therefore, the following code will never terminate if the element has an attribute with a default value:
// Very bad code; may never terminate NamedNodeMap attrs = element.getAttributes(); while (attrs.getLength() > 0) { attrs.removeNamedItem(attrs.item(0).getNodeName()); }
This example removes all attributes by first making a copy of the attribute names and then using the list to remove the attributes:
// Remove all the attributes of an element NamedNodeMap attrs = element.getAttributes(); String[] names = new String[attrs.getLength()]; for (int i=0; i<names.length; i++) { names[i] = attrs.item(i).getNodeName(); } for (int i=0; i<names.length; i++) { attrs.removeNamedItem(names[i]); }

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.