Java附加XML数据

时间:2010-05-15 04:32:48

标签: java xml

我已经阅读了本网站上的一些答案,但它们都没有为我工作。我有一个像这样的XML文件:

<root>
    <character>
        <name>Volstvok</name>
        <charID>(omitted)</charID>
        <userID>(omitted)</userID>
        <apiKey>(omitted)</apiKey>
    </character>
</root>

我需要以某种方式添加另一个<character>

我正在尝试这个,但它不起作用:

public void addCharacter(String name, int id, int userID, String apiKey){
    Element newCharacter = doc.createElement("character");

    Element newName = doc.createElement("name");
    newName.setTextContent(name);

    Element newID = doc.createElement("charID");
    newID.setTextContent(Integer.toString(id));

    Element newUserID = doc.createElement("userID");
    newUserID.setTextContent(Integer.toString(userID));

    Element newApiKey = doc.createElement("apiKey");
    newApiKey.setTextContent(apiKey);

    //Setup and write
    newCharacter.appendChild(newName);
    newCharacter.appendChild(newID);
    newCharacter.appendChild(newUserID);
    newCharacter.appendChild(newApiKey);
    doc.getDocumentElement().appendChild(newCharacter);
}

1 个答案:

答案 0 :(得分:0)

在没有看到所有代码的情况下,我怀疑问题是你正在调整内存中的DOM,而不是将结果写回文件。

写出来看起来像:

TransformerFactory.newInstance().newTransformer()
                  .transform(new DOMSource(doc), 
                             new StreamResult(f));

其中doc是一个文档,而f是要写入的文件。

为了找到DOM中的特定元素,我建议XPath