IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Desérializer du xml vers une liste ou arraylist


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut Desérializer du xml vers une liste ou arraylist
    bonjour à tous

    j'ai le fichier XML suivant

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <tests.Config>
      <inputpath>C:\test\</inputpath>
      <rejectpath>C:\reject\</rejectpath>
      <processedpath>C:\destination\</processedpath>
      <services__not__suppoterd>
      <sncode>1</sncode>
      <sncode>17</sncode>
      <sncode>18</sncode>
      <sncode>19</sncode>
      <sncode>37</sncode>
      </services__not__suppoterd>
    </tests.Config>

    mon problème c'est que j'arrive pas à deserializer l' element services__not__suppoterd vers une List ou une collection contenant tous les sncode sachant que je veut obtenir au final un objet qui a les attributs suivants :

    String inputpath;
    String rejectpath ;
    String processedpath ;
    (List ou ArrayList) services__not__suppoterd ;

    Merci d' avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut
    En utilisant JAXB 2 inclue dans java 6, sa ce fait tous seul:

    Le bean devrai ressembler à sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @XmlRootElement(name="tests.Config")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class Config {
    	private String inputpath;
    	private String rejectpath ;
    	private String processedpath ;
     
    	@XmlElementWrapper(name="services__not__suppoterd")
    	@XmlElement(name="sncode")
    	private List<Integer> services__not__suppoterd = new ArrayList<Integer>();
    }
    Et voici la méthode que j'utilise pour charger les XML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    /**
             * Désérialise un objet sauvegarder dans une structure XML
             * 
             * @param <T> le type objet correspondant au fichier XML sérialisé
             * @param xmlStream le flux contenant la structure XML à charger
             * @param destClass la class de l'objet serialisé
             * @param gzip true si la structure est compressé au format gzip, false sinon
             * @return l'objet désérialisé
             * @throws JAXBException
             */
    public static <T> T loadMarshallStructure(InputStream xmlStream, Class<T> destClass, boolean gzip) 
    			throws JAXBException, IOException {
    		T structure = null;
     
    		// on crée un contexte JAXB
    		JAXBContext context = JAXBContext.newInstance(destClass);
     
    		// on crée un Unmarshaller à partir du contexte
    		Unmarshaller um = context.createUnmarshaller();
     
    		InputStream is;
    		if(gzip)
    			is = new GZIPInputStream(xmlStream);
    		else
    			is = xmlStream;
     
    		// on demande au marshaller de générer la structure
    		structure = (T)um.unmarshal(is);
    		is.close();
     
    		return structure;
    	}

Discussions similaires

  1. XML: Bind vers une liste d'attributs
    Par Jayme65 dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 15/09/2012, 15h45
  2. [SAX] XML vers une Hashmap ou un Tableau
    Par alex75 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/08/2006, 11h23
  3. Réponses: 1
    Dernier message: 28/04/2006, 16h17
  4. Importation d'un fichier xml vers une BD mysql avec php
    Par naima2005 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/04/2006, 15h23
  5. [XML] [EXPAT] D'un document Xml vers une base de données
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/12/2005, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo