2015-07-15 2 views
0

Я использую Apache Commons Digester (с аннотациями), чтобы загрузить XML-файл в класс Java. Все работает правильно. Теперь мне нужно обновить XML-файл. Я должен изменить (на Java) значение свойства, а затем записать новый XML-файл. Как я мог это сделать? Насколько я понимаю, Digester API не предназначен для этой цели.Java - Apache commons Digester - написать xml

Редактировать: чтение ответов, я понимаю, что я не дал достаточной информации. Мой XML-файл является конфигурационным файлом для программы A, поэтому мне действительно нужно его содержимое при запуске программы A. Тогда у меня есть еще одна программа GUI B, которая может модифицировать этот файл конфигурации, она просто требует некоторого ввода от пользователя и изменяет относительные поля в файле XML.

ответ

0

Как вы уже нашли, Digester - это инструмент только для чтения - он обеспечивает сопоставление классов XML и Java, но не наоборот. Если вам нужно прочитать XML в классы Java, а затем записать его обратно в XML еще раз, я хотел бы предложить либо:

  • Keep, используя Digester для чтения, а также использовать XML писатель класс низкого уровня (например, XMLStreamWriter) , чтобы написать данные назад. Это подходит, если ваши данные не такие, как , и/или выходной XML - это другая структура для ввода XML.
  • Замените Digester полной библиотекой сопоставления Java-XML (JAXB, JiBX и т. Д.), Которая будет как читать, так и писать XML для вас. Это подходит, если ваши данные более сложны и/или выходной XML является той же структурой, что и входной XML.

Не знаю достаточно о том, что вы делаете, чтобы действительно рекомендовать один из этих подходов к другому.

Если вам вообще не нужны данные в Java-классах и они просто пытаются его преобразовать, то XSLT, как и @sharonbn, также является хорошим решением.

0

XML-модификация (обычно называемая преобразованием XML) лучше всего обрабатывать в XSLT standard. Apache Xalan является (одной из) библиотек Java, которые реализуют этот стандарт

Смежные вопросы