2010-03-01 4 views
0

J'essaie de créer un document XML à partir d'un jeu de résultats complexe, c'est-à-dire un jeu de résultats avec plusieurs jointures, de sorte qu'un concours contient un tas de questions.Mappage du jeu de résultats complexe avec Dom4j

Ainsi, le document serait finir par quelque chose comme:

<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> 
... 

Un peu comme la commande « pour XML » dans SQL Server, mais je ne peux pas utiliser la base de données pour effectuer le traitement, donc il a besoin être en Java. Quelqu'un peut-il me diriger dans la bonne direction à toutes les bonnes ressources ou même les bibliothèques open source qui font cela/une chose similaire afin que je puisse faire ce que je veux s'il vous plaît? Merci.

Répondre

0

Je ne comprends pas de votre question ce que signifie "en Java"? Avez-vous besoin d'analyser ce XML (utilisez Dom4J), voulez-vous générer des objets Java à partir de cela (utilisez JAXB, ou Xstream, ou l'une des autres bibliothèques de liaison XML), ou avez-vous besoin d'écrire ce XML?

+0

"en Java" signifie que je ne peux pas utiliser la base de données que je dois utiliser Java pour faire le traitement. J'ai besoin de créer le XML à partir du jeu de résultats retourné, je sais comment créer manuellement des documents et des éléments, etc. mais j'ai du mal quand il s'agit d'éléments imbriqués, comme l'exemple XML que j'ai donné. – marktucks

0

Une chose relativement simple serait de convertir d'abord votre jeu de résultats en objet Compétitions, puis de convertir l'objet en xml (en utilisant xstream ou un tel framework).

Etes-vous capable de convertir votre jeu de résultats en objet Compétitions? (Ou vous voulez aider dans ce domaine, aussi bien?)

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

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

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

class Answer { 
    String getText(); 
} 
0

Comme calme la tempête a suggéré, je converti mes jeux de résultats dans un arbre d'objets et créé une méthode toxml personnalisé dans une classe abstraite, qui a traversé les méthodes de chaque objet et créé des éléments XML et des attributs à partir d'eux.

Je ne peux pas croire qu'il n'y a pas une solution Open Source plus facile pour cela, qui ferait tout cela automatiquement! Peut-être que je suis juste paresseux :)

+0

Bonjour pour créer un objet Java à partir du jeu de résultats, vous pouvez utiliser Hibernate (qui est une solution ORM). Hibernate a aussi l'option d'exporter XML. Mais c'est un peu difficile avec les ensembles de résultats joints. –

Questions connexes