Java добавление данных XML - PullRequest
0 голосов
/ 15 мая 2010

Я уже прочитал несколько ответов на этом сайте, но ни один из них не помог мне. У меня есть 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 голосов
/ 15 мая 2010

Не видя весь ваш код, я подозреваю, что проблема в том, что вы настраиваете DOM в памяти, но не записываете результат обратно в файл.

Запись этого выглядит примерно так:

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

, где doc - Документ, а f - Файл для записи.

Чтобы найти определенные элементы в DOM, я рекомендую XPath .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...