Java: XML в объект (или массив) - PullRequest
       1

Java: XML в объект (или массив)

2 голосов
/ 14 декабря 2010

Как я могу преобразовать XML-документ в Java-объект (или массив)?Я прочитал XML следующим образом:

DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dFactory.newDocumentBuilder();

Document doc = dBuilder.parse(new File("file.xml"));
doc.getDocumentElement().normalize();

Теперь я хочу, чтобы этот XML был объектом (или массивом), но как мне это сделать?Существуют ли какие-либо методы, учебные пособия или классы для этого?

Ответы [ 5 ]

9 голосов
/ 14 декабря 2010

Использование XStream .

Объект в XML

Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);

Полученный XML выглядит следующим образом:

<person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
  </phone>
  <fax>
    <code>123</code>
    <number>9999-999</number>
  </fax>
</person>    

XML для объекта

Person newJoe = (Person)xstream.fromXML(xml);

Также см.

6 голосов
/ 14 декабря 2010

Вам понадобится JAXB unmarshaling .

3 голосов
/ 14 декабря 2010

Я рекомендую использовать XStream для XML (де) сериализации. Это способ проще, чем использование встроенных в Java API XML.

1 голос
/ 14 декабря 2010

Я бы посмотрел на JAX / B, который дает возможность "связываться" между объектами Java и представлениями XML.

У меня есть небольшая статья о том, как сделать это с помощью инструментов на основе Rational Eclipse здесь , но, похоже, есть (никогда не использовал их сам) прямые плагины Eclipse, например это .

Действительно, написание JAX / B вручную возможно, становится немного скучно для сложного XML, но аннотации довольно просты.

0 голосов
/ 14 декабря 2010

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

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