使用dom更新xml中的元素

时间:2015-09-01 17:38:22

标签: java xml dom

我以下列方式创建了一个xml:

public static Document baseTemplate(String topLevel,String[] pkey) throws ParserConfigurationException{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.newDocument();
    Element top = doc.createElement(topLevel);
    for(int i= 0;i<pkey.length;i++){
        Element child = doc.createElement(pkey[i]);
        top.appendChild(child);        
    }
    doc.appendChild(top);
    return doc;
}

这将创建一个虚拟xml,例如基于为topLevel传递的输入及其中的各个元素。

现在我希望以后可以使用值更新单个元素。基于传递的输入,xml结构将是通用的。类似地,更新逻辑也必须是通用的。我如何实现它?

1 个答案:

答案 0 :(得分:0)

只是一个想法,“使用XPATH编辑XML或创建XML”,对于每个传递的新输入,您需要 XPATH 标记要更新的节点,请尝试以下操作:

Document doc = /*you have this in your code */
XModifier modifier = new XModifier(doc);
modifier.addModify("//PersonList/Person[2]/Name", "newName");
modifier.modify();

您可以在此处找到有关XModifier的更多信息:https://github.com/shenghai/xmodifier 希望能帮到你。