2011-06-30 149 views
5

Quiero cambiar el nombre del nodo XML existente por un nuevo nombre. Estoy haciendo el análisis de XML usando DOM concept java, tengo un conjunto de nodos que contiene el mismo nombre. por ejemploCómo cambiar el nombre del nodo XML

<names> 
    <abc>Apple</abc> 
    <abc>Ball</abc> 
    <abc>Cat</abc> 
    <abc>Doll</abc> 
    <abc>Elephant</abc> 
    </names> 

I el ejemplo anterior no es un conjunto de nodos contiene valor. en ese ejemplo quiero cambiar el valor del nodo (es decir)

<names> 
    <name>Apple</name> 
    <name>Ball</name> 
    <name>Cat</name> 
    <name>Doll</name> 
    <name>Elephant</name> 
    </names> 

es esto posible hacer en DOM, soy más o menos nuevas para analizar el concepto usando DOM .. Gracias por sus valiosos comentarios.

Respuesta

10

Al igual que en mi respuesta en updating a property of a xml tag:

public void changeTagName(Document doc, String tag, String fromTag, String toTag) { 
    NodeList nodes = doc.getElementsByTagName(fromTag); 
    for (int i = 0; i < nodes.getLength(); i++) { 
     if (nodes.item(i) instanceof Element) { 
      Element elem = (Element)nodes.item(i); 
      doc.renameNode(elem, elem.getNamespaceURI(), toTag); 
     } 
    } 
} 
+0

doc.renameNode no está funcionando ... ¿hay alguna alternativa .. ?? – RAAAAM

+2

renameNode() es lo que estás buscando. ¿Sus documentos tienen espacios de nombres? Eso puede complicar las cosas. –

Cuestiones relacionadas