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:
This example removes all attributes by first making a copy of the attribute
names and then using the list to remove the attributes:
// Very bad code; may never terminate
NamedNodeMap attrs = element.getAttributes();
while (attrs.getLength() > 0) {
attrs.removeNamedItem(attrs.item(0).getNodeName());
}
// 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