如何重命名XML节点名称

6

我希望将现有的XML节点重命名为新名称。我正在使用Java DOM概念进行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解析概念还很陌生。感谢有价值的评论。

1个回答

15

类似于我在更新XML标签属性的回答中所说:

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);
        }
    }
}

doc.renameNode不起作用...有没有其他的替代方法..?? - RAAAAM
2
renameNode() 是你要找的函数。你的文档有命名空间吗?那可能会让事情变得复杂。 - james.garriss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接