2016-01-28 7 views
0

Я собираюсь приступить к большому сольному проекту на моем месте работы. Сначала позвольте мне описать проект. Меня попросили создать Java-программу, которая может взять файл CamT54 (который является всего лишь XML-файлом) и отобразить информацию в виде таблицы в java. Затем пользователям должна быть предоставлена ​​возможность удалить определенные компоненты из таблицы и вернуть их в xml-формат с изменениями.Правдоподобность плана использования DOM4J с JTables & Action Listeners

Я не очень разбираюсь в работе с XML на Java, поэтому это будет задача обучения и работы. Прежде чем начать инвестировать время, я хотел бы знать, что мой подход - лучший подход.

Мой план заключается в использовании DOM4J для обработки синтаксического анализа и обработки XML. Я буду использовать JTable для отображения данных и включения некоторых кнопок в GUI, которые позволят изменять данные с помощью некоторых прослушивателей действий.

Будет ли это правдоподобным планом? Может ли DOM4J эффективно разрешать отображение XML-данных в формате таблицы и, кроме того, эти данные могут быть легко изменены или удалены, а затем сохранены в новый xml?

+0

Также рассмотрите [jaxb] (http://stackoverflow.com/tags/jaxb/info). – trashgod

+0

, если вы не можете использовать качели, вы можете попробовать javafx treetableview. treetableview может помочь вам (и пользователю) более точно просмотреть иерархическую структуру xml. – guleryuz

+0

Спасибо за это предложение guleryuz. Я буду смотреть на это, поскольку я не ограничусь чем-либо использовать, пока это делается. Trashgod, Я рассматривал JaxB, как он использовался в более раннем проекте, единственная проблема в том, что я считаю, что программа должна дать пользователю возможность легко удалять элементы из XML. Мое понимание с JaxB выполняется заранее, поэтому удаление элементов во время выполнения не представляется возможным? – jesric1029

ответ

0

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

Оказалось, что самый простой подход (по крайней мере для меня) состоял в том, чтобы использовать стандартный парсер DOM, вот шаги, которые я предпринял.

  1. Разработал весь XML-массив в строковых массивах. Для этого потребовался XPath, мне также пришлось преобразовать элементы в строки и удалить дополнительную информацию тега из строки с помощью подстрок, так как мне нужно только фактическое значение.

  2. Я заполнил JTable этими массивами.

  3. После того, как пользователи закончили редактирование и нажали кнопку сохранения, другой парсер Dom возьмет исходный XML-код и изменит каждый атрибут, используя значения из массивов (которые были удалены и повторно заполнены с помощью значений ячейки JTable, когда пользователь нажал "спасти").