Сохранение Графов объектов Java как XML-файл

Полный рабочий пример в этой скрипке .

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

int i = 1;
var temp = s.Split(',').ToList();
while(i < temp.Count) {
    i = i+2;
}

13
задан 15 September 2008 в 13:05
поделиться

14 ответов

Самый легкий путь здесь состоит в том, чтобы сериализировать граф объектов. Java 1.4 создал в поддержке сериализации как XML.

решением для А, которое я использовал успешно, является XStream ( http://x-stream.github.io/) - это - небольшая библиотека, которая легко позволит Вам сериализировать и десериализовывать к и от XML.

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

8
ответ дан 1 December 2019 в 20:13
поделиться

XStream людьми в Thoughtworks имеет простой API и даже имеет дело с вещами как дублирующиеся и циклические ссылки. Это, кажется, активно разрабатывается и хорошо документируется.

http://x-stream.github.io/

4
ответ дан 1 December 2019 в 20:13
поделиться

Систематизатор Apache довольно легок: http://commons.apache.org/digester/
JAXB является более новым и идет с совершенством аннотации: https://jaxb.dev.java.net

4
ответ дан 1 December 2019 в 20:13
поделиться

Если Вам нужно управление XML, который сгенерирован, я рекомендую смотреть на Между ( http://commons.apache.org/betwixt/ ) - это добавляет большую функциональность к систематизатору Apache (Систематизатор хорош для создания графов объектов от XML, но не так хорош для генерации их).

, Если Вы действительно не заботитесь о XML, который сгенерирован (просто, что он может быть десериализован в будущем), тогда классы XMLEncoder/Decoder, встроенные в Java или хорошие - пока, объекты, которые Вы сериализируете, следуют за спецификацией JavaBean. Самая большая область я столкнулся с проблемами с решением XMLEncoder/Decoder, - то, если у Вас есть боб, который возвращает неизменный список для одного из, его - свойства - кодер не обрабатывает ту ситуацию очень хорошо.

2
ответ дан 1 December 2019 в 20:13
поделиться

java.beans. XMLEncoder, возможно?

0
ответ дан 1 December 2019 в 20:13
поделиться

Если Вы действительно только интересуетесь сериализацией Ваших объектов в файл и затем десериализацию их позже, то Вы могли бы проверить YAML вместо XML. YAML намного легче работать с тем, чем XML и выходные файлы очень человекочитаемы (который может или не может быть требованием). Выезд yaml.org для получения дополнительной информации. Я использовал JYAML успешно на недавнем проекте.

-1
ответ дан 1 December 2019 в 20:13
поделиться

XStream очень прост http://x-stream.github.io/

, XStream является простой библиотекой для сериализации объектов к XML и назад снова.

1
ответ дан 1 December 2019 в 20:13
поделиться

Я был бы второй (или треть) XStream. Это читает и пишет XML, не нуждаясь ни в какой специальной обязательной конфигурации или помещая много постороннего синтаксиса в XML.

1
ответ дан 1 December 2019 в 20:13
поделиться

Если необходимо управлять структурой XML, XStream является хорошим выбором. Можно использовать аннотации для определения точно структуры/отображения XML и объектов.

1
ответ дан 1 December 2019 в 20:13
поделиться

JAX-B является частью стандартных API и действительно простой в использовании.

2
ответ дан 1 December 2019 в 20:13
поделиться

Простой API, ну, в общем, прост! Это действительно хорошо. http://simple.sourceforge.net/

можно также использовать XStream: http://www.ibm.com/developerworks/library/x-xstream/index.html

2
ответ дан 1 December 2019 в 20:13
поделиться

Используйте java.beans.XMLEncoder. Его API очень прост (на самом деле немного слишком простой; было бы хорошо соединить его проводом к SAX ContentHandler), но это работает над многими графиками из поля, и легко создать Вашего собственного делегата персистентности к любым чудным классам, с которыми Вы могли бы встретиться.

  • синтаксис, используемый XMLDecoder, позволяет Вам вызывать любой метод, экземпляр или статичный, включая конструкторов, таким образом, это чрезвычайно гибко.
  • Другие кодеры называют элементы и атрибуты после имен классов и имен полей, таким образом, нет никакой фиксированной схемы для результата. XML XMLENCODER следует за простым DTD и может легко быть проверен или преобразован, даже когда Вы никогда не видели типы, он использует.
  • можно присвоить объектам идентификатор и сослаться на них всюду по графику.
  • можно обратиться к константам, определенным в классах или интерфейсах.

И, это встроено в Java SE, таким образом, Вы не должны поставлять дополнительную библиотеку.

3
ответ дан 1 December 2019 в 20:13
поделиться

Простой

, Хотя XStream и JAXB могут сериализировать некоторые графы объектов succssfully, они не могут обработать очень сложные графики. Наиболее мощное решение для больших сложных графиков Просто Сериализация XML . Это может обработать любой график. Кроме того, it’s быстрый и простой использовать без любых зависимостей.

Для заключения в кавычки Простой страница проекта:

Простой высокопроизводительная сериализация XML и платформа конфигурации для Java. Его цель состоит в том, чтобы служить основой XML, которая включает быструю разработку конфигурации XML и систем связи. Эта платформа помогает разработке систем XML с минимальным усилием и уменьшенными ошибками. Это предлагает полную сериализацию объекта и десериализацию, поддерживая каждую ссылку, с которой встречаются. В сущности это подобно сериализации XML C# для платформы Java, но предлагает дополнительные функции для перехвата и управления.

3
ответ дан 1 December 2019 в 20:13
поделиться

Я составил список с множеством XML-библиотек сериализации и лицензией

1
ответ дан 1 December 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: