Замена XML в файле из «документа» в Java - PullRequest
0 голосов
/ 07 мая 2010

после обработки моих первых шагов по работе с XML в Java, я сейчас нахожусь в точке, где я хочу обновить некоторые данные в моем файле XML / GPX ...

Замена его в моем типе данных "Документ" прекрасно работает:)

Как здесь возникает вопрос: как я могу сохранить измененную модель документа в моем файле? Нужно ли делать это, используя стандартные файловые функции (через Steam и т. Д.), Или более элегантный способ сделать это? ; -)

Вот код, который я уже разработал, возможно, это могло бы помочь. (метод getParsedXML просто помещает преобразование из файла в дополнительный метод)

                Document tmpDoc = getParsedXML(currentGPX);

            //XML Parsind tests:
            // Access to tag attribute <tag attribut="bla">
            System.out.println(tmpDoc.getElementsByTagName("wpt").item(0).getAttributes().getNamedItem("lat").getTextContent());

            // Access to the value of an child element <a><CHILD>ValueOfChild</CHILD></a>
            System.out.println(tmpDoc.getElementsByTagName("wpt").item(0).getChildNodes().item(5).getTextContent());

            // Replacing access to tag attribute
            tmpDoc.getElementsByTagName("wpt").item(0).getAttributes().getNamedItem("lat").setTextContent("139.921055008");
            System.out.println(tmpDoc.getElementsByTagName("wpt").item(0).getAttributes().getNamedItem("lat").getTextContent());

            // Replacing access to child element value
            tmpDoc.getElementsByTagName("wpt").item(0).getChildNodes().item(5).setTextContent("Cala Sant Vicenç - Mallorca 2");
            System.out.println(tmpDoc.getElementsByTagName("wpt").item(0).getChildNodes().item(5).getTextContent());

1 Ответ

2 голосов
/ 07 мая 2010

К сожалению, API Java XML в основном созданы для анализа XML, но странным образом отсутствует очевидный API для хранения XML в файле.

Вы можете сделать это с помощью API преобразования XSL, как в в этом примере .

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