Запись в XML-файл на Java - PullRequest
2 голосов
/ 13 марта 2012

У меня есть XML-файл, в котором у меня есть элемент, как показано;

"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89"/>"

Я хочу добавить еще один атрибут "комментарий" и записать его в этот XML-файл, давая;

"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89" comment=""/>"

Как бы я поступил так?

Спасибо, Мэтт

Ответы [ 4 ]

2 голосов
/ 13 марта 2012
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);
Document document = factory.newDocumentBuilder().parse(xmlFile);

Element eventElement = (Element)document.getElementsByTagName("Event").item(0);
eventElement.setAttribute("comment", "");

К вашему сведению: здесь я использую DOM Framework org.w3c.dom.*

0 голосов
/ 13 марта 2012

Использование DOM, как предлагалось в предыдущих ответах, безусловно, целесообразно для этой конкретной проблемы, которая относительно проста.

Однако я обнаружил, что JDOM, как правило, гораздо проще использовать, когда вы хотите проанализировать и/ или изменить файлы XML.Его основной подход заключается в загрузке всего файла в простую в использовании структуру данных.Это хорошо работает, если ваш XML-файл не очень большой.

Для получения дополнительной информации перейдите на http://www.jdom.org/

0 голосов
/ 13 марта 2012

Используйте метод setAttribute для добавления атрибута,

// Add an attribute
element.setAttribute("newAttrName", "attrValue");

Используйте следующий метод для записи в файл XML,

// This method writes a DOM document to a file
public static void writeXmlFile(Document doc, String filename) {
    try {
        // Prepare the DOM document for writing
        Source source = new DOMSource(doc);

        // Prepare the output file
        File file = new File(filename);
        Result result = new StreamResult(file);

        // Write the DOM document to the file
        Transformer xformer = TransformerFactory.newInstance().newTransformer();
        xformer.transform(source, result);
    } catch (TransformerConfigurationException e) {
    } catch (TransformerException e) {
    }
}
0 голосов
/ 13 марта 2012

Разобрать файл, добавить атрибут и записать его обратно на диск.

Существует множество фреймворков, которые могут это сделать. DOM-фреймворк в Java - это, вероятно, первое, на что стоит обратить внимание.

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