我想向我的XML文档中的所有XPath标签添加<definition>属性。 XPath的值将来自每个<term>Test123</term>标记内的嵌套标记<definition>。我正在使用import org.w3c.dom.Document;对象。当我用非常长的XML文件运行此行时,它告诉我<definition>标记有539个实例:

System.out.println(inputDOM.getDocumentElement().getElementsByTagName("definition"));


因此,最终结果是必须存在一个Document对象,该对象已设置了术语标签中的所有定义标签,例如

<definition XPath="Test123"> <term>Test123</term> </definition>

最佳答案

试试这个

NodeList definitionElements = inputDOM.getElementsByTagName("definition");
for (int i = 0; i < definitionElements.getLength(); i++) {
    Element current = (Element) definitionElements.item(i);
    Node term = current.getElementsByTagName("term").item(0);
    if(term != null && term.getNodeType() == Node.ELEMENT_NODE)
        current.setAttribute("XPath", ((Element) term).getTextContent());
}


首先,我们获得所有<definition>标签。之后,我们迭代每个<definition>标记并设置一个新属性“ XPath”,其值是<term>子标记的文本内容

10-08 00:03