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 :

XML vers une Hashmap ou un Tableau [SAX]


Sujet :

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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 99
    Points : 46
    Points
    46
    Par défaut XML vers une Hashmap ou un Tableau
    Bonjour à tous,

    Je vous explique mon problème, j'utilise un webservice qui me renvoie une String sous la forme d'une structure xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version='1.0' encoding='utf-8'?>
    <LISTE_PROFILS>
     <PROFIL NOM="" CODES=""></PROFIL>
    </LISTE_PROFILS>
    Une fois que j'ai récupéré cette string, je voudrais la parser afin de construire une Hashmap 'Nom' <-> 'Codes'.

    Quelqu'un pourrait-il me donner un coup de main sur ce problème?

    Merci par avance,
    Alex

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    C'est tout simple, il te suffit de reagarder du côté de sax et d'étendre la classe DefaultHandler.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 99
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par thibaut
    C'est tout simple, il te suffit de reagarder du côté de sax et d'étendre la classe DefaultHandler.

    A+

    Je fais qqch comme ca?

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    public void ma_fonction(String mon_xml)
    {
    				SAXParserFactory factory = SAXParserFactory.newInstance();
    				SAXParser saxParser = factory.newSAXParser();
    				InputSource input = new InputSource(new StringReader(mon_xml));
    		        saxParser.parse(input, this);
    }
     
    // ===============================================================
    	// Les gestionnaires d'évènements SAX 
    	// ===============================================================
    	public void startDocument () throws SAXException {
            // on ne fait rien 
        }
     
        public void endDocument () throws SAXException {
            // on ne fait rien
        }
     
        public void startElement (String name, AttributeList attrs) throws SAXException  {
            // balise PROFIL
        	if (name.equalsIgnoreCase("PROFIL")) {
        		if (attrs != null) {
        			 for (int i = 0; i < attrs.getLength (); i++) 
        			 {
        				 if (attrs.getName(i).equalsIgnoreCase("NOM")) {
        					 cLogger.debug("PROFIL : NOM="+attrs.getValue(i));
        					 //On stock le résultat    				 }
        				 if (attrs.getName(i).equalsIgnoreCase("CODES")) {
        					 cLogger.debug("PROFIL : CODES="+attrs.getValue(i));
        					 //On stock le résultat    				 }
        			 }
        		}
        	}
        }
     
        public void endElement (String name) throws SAXException {
            // on ne fait rien
        }
     
        public void characters (char buf [], int offset, int len) throws SAXException {
            // on ne fait rien
        }

    Par contre, je ne sais pas comment le stocker proprement dans une hashmap étant donné que j'ai 2 if séparés. Une idée?

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    En utilisant un attribut de classe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2007, 16h59
  2. [SAX] De XML vers une Base de données
    Par jeyce dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 09/11/2006, 10h23
  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