我已经阅读了本网站上的一些答案,但它们都没有为我工作。我有一个像这样的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);
}
答案 0 :(得分:0)
在没有看到所有代码的情况下,我怀疑问题是你正在调整内存中的DOM,而不是将结果写回文件。
写出来看起来像:
TransformerFactory.newInstance().newTransformer()
.transform(new DOMSource(doc),
new StreamResult(f));
其中doc
是一个文档,而f
是要写入的文件。
为了找到DOM中的特定元素,我建议XPath。