Parsing de fichier XML

lezj Messages postés 66 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 juillet 2013 - 30 avril 2012 à 17:15
 Utilisateur anonyme - 5 mai 2012 à 00:53
Bonjour,

voilà, depuis deux jours, je cherche une solution au problème suivant:

J'ai un fichier XML structuré de façon suivante:

<lexique>
<theme nomTheme="facture">
<mot> cher </mot>
<mot> cher(e) </mot>
<mot> chers </mot>
<mot> client </mot>
<mot> client(e) </mot>
<mot> clients </mot>	
</theme>
        <theme nomTheme="recharge"> 
<mot> cher </mot>
<mot> cher(e) </mot>
<mot> chers </mot>
<mot> client </mot>
<mot> client(e) </mot>
<mot> clients </mot>
<mot> informons </mot>
<mot> informe </mot>
<mot> informer </mot>
<mot> informez </mot>
<mot> information </mot>
<mot> informations </mot>
        </theme>
</lexique>
        


J'utilise une API java nommée Simple XML Serialization 2.6.2 accessible à l'adresse suivante: Simple 2.6.2

Ce que je voudrais est simple: n'ayant pas le droit de modifier la structure du fichier XML, je voudrais pouvoir trouver une structure de classe qui me permette de dé-sérialiser le contenu de ce fichier pour en construire une classe. Donc si vous aviez une structure de classe pouvant contenir ce fichier, je vous en serais gré.

Merci et à bientôt!

Lez-J

1 réponse

Utilisateur anonyme
5 mai 2012 à 00:53
Salut

qui me permette de dé-sérialiser le contenu de ce fichier pour en construire une classe

En gros représenter ton XML sous forme de classe Java ?

public class Lexique {

     protected List<Theme> themesLexique;

     public Lexique(){
          themesLexique = new ArrayList<Theme>();
     }

     public Lexique( List<Theme> themes ){
          themesLexique = themes;
     }

     public void ajouterTheme( Theme theme ){
          themesLexique = theme;
     }

     protected class Theme {

          protected String nomTheme;
          protected List<String> mots;

          public Theme( String nom ){
               nomTheme = nom;
               mots = new ArrayList<String>();
          }

          public Theme( String nom, List<String> mots ){
               nomTheme = nom;
               this.mots = mots;
          }

          public void ajouterMot( String mot ){
               mots.add(mot);
          }

     }

}

Après, c'est un brouillon. Tu peux utiliser la généricité pour mieux gérer le type de contenu de tes balises, par contre ton code sera plus compléxifié. Sinon, si tu as un gros XML, les Lists ne seront plus assez optimisées. Au fait, simple curiosité, pourquoi Simple XML et pas SAX ?


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
0
Rejoignez-nous