Подтвердить что ты не робот

Преобразование объектов XML в Java

Какой лучший способ конвертировать XML в объекты Java?

Мне не нравится подобное представление, но хотелось бы вытащить определенные данные из XML и заполнить объект Java. Я посмотрел на XStream, но мне не понравилось, что все "спуститься вниз, двигаться вверх". Я бы предпочел DOM как объект при записи конвертеров...

4b9b3361

Ответ 1

Я знаю, что все любят автоматические решения, такие как JAXB и т.д., но я бы рекомендовал использовать кодировки javax.xml.bind.Marshaller и javax.xml.bind.Unmarshaller для ручного кодирования, чтобы получить именно то, что вы хотите, без необходимости заполнять пространство perm perm. Используйте JDOM для анализа XML и сопоставления значений с объектами Java с помощью XPath. Это будет некоторая работа, чтобы сделать это один раз, но у вас будет именно то, что вам нужно, и больше ничего.

Ответ 2

Если у вас есть XML-схема, JAXB - это входит в состав JDK. Создание классов Java путем запуска, например. xjc -p foo myschema.xsd

Чтобы прочитать XML файл и вернуть объект (из классов, сгенерированных инструментом xjc):

    JAXBContext context = JAXBContext.newInstance(FooObj.class);
    Unmarshaller unMarshaller = context.createUnmarshaller();
    FooObj param = (FooObj) unMarshaller.unmarshal(new FileInputStream("Foo.xml"));

Вы можете делать подобные вещи, если хотите, чтобы части документа XML были преобразованы в объект, вы должны, например, быть в состоянии предоставить JAXB часть документа DOM, а не весь файл, как указано выше.

Ответ 4

JAXB - лучший способ конвертировать объекты в XML, а MOXy - лучшая реализация JAXB.

  • JAXB является стандартным, включенным в Java SE 6
  • Стандартная технология привязки XML для JAX-WS, JAX-RS и SCA
  • Простая среда выполнения

MOXy предлагает следующие расширения:

Ответ 5

Мне нравится Simple и с ним очень легко работать. Это действительно похоже на подобное представление, хотя, возможно, не совсем то, что вы ищете.

Если вы ищете DOM-подобное решение, возможно, подходит JDom.

Ответ 6

Вы можете использовать Castor для удобного преобразования XML в Java и обратно.

С Castor вы можете

  • Простое преобразование: простой Marshaller и Unmarshaller делает преобразование XML в Java и обратно чрезвычайно простым.
  • Сопоставление: файл сопоставления может быть создан для ограничения объема данных, которые должны быть преобразованы из XML в Java и обратно.

Ответ 7

Я не совсем уверен, что это то, что вы ищете, но вы можете использовать что-то вроде XMLBeans для привязки XML к объектам Java. Я должен был использовать его у предыдущего работодателя. К сожалению, это была существующая система, и я только должен был манипулировать объектами и не должен был создавать библиотеку, которая их содержит. Кроме того, я не уверен, насколько хорошо он будет работать без XSD (вы не упомянули, был ли у вас один или нет).