Changing the Name of a DOM Element
There is no method to change the name of an element. The only way to
change the name is to create another element with the new name, copy
the attributes, copy the children, and finally replace the node.
// 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
Element element = doc.getDocumentElement();
// Create an element with the new name
Element element2 = doc.createElement("newname");
// Copy the attributes to the new element
NamedNodeMap attrs = element.getAttributes();
for (int i=0; i<attrs.getLength(); i++) {
Attr attr2 = (Attr)doc.importNode(attrs.item(i), true);
element2.getAttributes().setNamedItem(attr2);
}
// Move all the children
while (element.hasChildNodes()) {
element2.appendChild(element.getFirstChild());
}
// Replace the old node with the new node
element.getParentNode().replaceChild(element2, element);
Tag name not name. This is super confusing