Составление комплексного результирующего набора с Dom4j - PullRequest
0 голосов
/ 01 марта 2010

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

Таким образом, документ будет выглядеть примерно так:

<competitions>
  <competition id="12">
    <question id="3">
      <answer id="34">
        The answer
      </answer>
      <answer id="35">
        The answer
      </answer>
      <answer id="36">
        The answer
      </answer>
    </question>
...

Очень похоже на команду «for XML» в SQL Server, но я не могу использовать базу данных для обработки, поэтому она должна быть на Java. Может кто-нибудь направить меня в правильном направлении к любым хорошим ресурсам или даже к библиотекам с открытым исходным кодом, которые делают эту / подобную вещь, чтобы я мог заставить ее делать то, что я хочу, пожалуйста? Спасибо.

Ответы [ 3 ]

0 голосов
/ 02 марта 2010

Достаточно простой вещью было бы сначала преобразовать ваш набор результатов в объект Competitions, а затем посмотреть на преобразование объекта в xml (с использованием xstream или некоторой такой структуры).

Можете ли вы преобразовать свой набор результатов в объект соревнований? (Или вы тоже хотите помочь?)

class Competitions {
   List<Competition> getCompetitions();
}

class Competition {
   Integer getId();
   Question getQuestion();
}

class Question {
   Integer getId();
   Answer getAnswer();
}

class Answer {
   String getText();
}
0 голосов
/ 03 марта 2010

Как предложил Calm Storm, я преобразовал свои результирующие наборы в дерево объектов и создал собственный метод toXml в абстрактном классе, который проходил методы в каждом объекте и создавал из них XML-элементы и атрибуты.

Я просто не могу поверить, что для этого нет более простого решения с открытым исходным кодом, которое бы делало все это автоматически!Может я просто ленивый :) 1003 *

0 голосов
/ 01 марта 2010

Я не понимаю из вашего вопроса, что означает "на Java"? Вам нужно проанализировать этот XML (используйте Dom4J), хотите ли вы сгенерировать Java-объекты из этого (используйте JAXB или Xstream или любую другую библиотеку XML-привязок) или вам нужно написать этот XML?

...