2011-06-30 70 views
5

我想将现有XML节点重命名为新名称。我正在使用DOM概念java进行XML解析,我有一组包含相同名称的节点。例如如何重命名XML节点名称

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

我上面的例子中有一组节点包含值。在这个例子我想改变节点值(即)

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

这是可能在DOM做的,我是非常新的,使用DOM解析概念..感谢的宝贵意见。

回答

10

我在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不工作...是否有任何替代..? – RAAAAM

+2

renameNode()就是你要找的东西。你的文件是否有命名空间?这可能会让事情变得复杂。 –