модификация XML-файла в Java - PullRequest
0 голосов
/ 27 октября 2010

У меня есть диалоговое окно, в которое пользователь вставляет различные данные через элементы управления графическим интерфейсом, и эта информация сохраняется в виде файла XML (реализовано в Java).
Информация, хранящаяся в файле XML, является информацией о конфигурации приложения.
Я могу вручную изменить файл конфигурации xml, но я также хочу предоставить эту возможность и через пользовательский интерфейс.
Поэтому, когда открывается диалоговое окно (для создания конфигурации), соответствующий четко определенный объект заполняетсяразличные значения, вводимые пользователем.
Как только пользователь нажимает «сохранить», информация в объекте сохраняется в виде xml.
Теперь я подумывал предоставить возможность редактирования файла через пользовательский интерфейс.Таким образом, тот же диалог отображается для пользователя, но на этот раз с информацией о конфигурации, уже заполненной загруженным файлом.Соответствующий объект также заполняется.
Я не уверен, каков наилучший способ изменить файл на этом этапе.
Должен ли я использовать 2 объекта, 1, в котором хранится вся информация о файле, и 1, в котором хранятся измененныезначения из диалога, и начать сравнивать объекты на предмет изменений, чтобы я изменил файл?Или я должен удалить файл и создать новый?
Каков наилучший подход и как мне действовать в каждом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 октября 2010

Рассмотрим поток данных. Пользователь будет работать с графическим интерфейсом и вносить изменения. В тот момент, когда они вносят изменения, данные в графическом интерфейсе не соответствуют XML. Если пользователь решит сохранить данные, то простая операция сортировки (тривиальная, если используется JAXB) обеспечит обновление XML. Вам не нужно сравнивать каждое поле, в этом нет никакого смысла - конечно, вы проверили содержимое перед тем, как отправить их в файл. Если пользователь решает отменить, то сортировка не производится.

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

Однако, если пользователю необходимо отменить сохранение (например, вернуться к предыдущей конфигурации), вам потребуется структура резервного копирования (или поддержка стека моделей графического интерфейса в памяти). Я бы не рекомендовал такой подход, поскольку вы просто теряете излишнюю сложность. Пользователи, как правило, довольны кнопкой «Сохранить» или «Отмена», а не «Восстановить».

0 голосов
/ 27 октября 2010

Будьте проще.Просто перезапишите весь файл, используя обновленный объект.Тогда вам не понадобится специальный код для каждого случая.Все, что вам нужно, это один метод для маршалинга объекта в файл и один метод для его маршалинга.

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