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 :

Parser un document avec SAX et récupérer les données [SAX]


Sujet :

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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut Parser un document avec SAX et récupérer les données
    Bonsoir,

    Voilà je découvre java et je souhaiterais parser un fichier xml. Le problème étant le suivant je défini une classe qui hérite de DefaultHandler, je redéfinis les méthodes startElement(), endElement() et characters et je souhaite récupérer le contenu dans un objet.

    Or imaginons que j'ai un objet User qui dérive de DefaultHandler qui possède les champs suivants : pseudo, age et mail. Je souhaite que l'objet possède la faculté de récupérer lui-même ses informations donc qu'il soit capable de parser lui-même le fichier xml en question.

    Je suis donc obligé de faire quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public void parse() {
    			SAXParser sp = spf.newSAXParser();
    			sp.parse(in, this);
        }
    J'ai simplifié le code histoire de garder le strict minimum. C'est au niveau du this que ça me dérange. Puis que this est le User et contient à la fois les fonctions nécessaires au parsage et les variables à affecter.

    Donc j'ai pensé à une autre solution, je crée une classe UserParser qui dérive de DefaultHandler. À l'intérieur de celle-ci je construis un objet User, je définis un accesseur qui va me permettre de récupérer le User avec les caractéristiques du fichier.

    Mais je trouve ça un peu bancal... Existe t-il une sorte de schéma à suivre ou une meilleure solution car pour le moment je patauge un peu.

    Merci à vous.

    Bye.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je ne trouve pas ta dernière solution bancale.

    Personnellement je renommerais UserParser en UserParserHandler, parce que cette classe ne parse rien du tout, elle récupère juste les évènements SAX.

    Et je ferais une classe UserParser qui regroupe le fait d'appeler un parseur XML, en lui passant un UserParserHandler, et qui à la fin récupère le User avec un accesseur de UserParserHandler.
    Comme ça, le fait d'aller récupérer le User avec un accesseur est masqué par la classe qui s'occupe de parser un User.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Merci pour ta réponse.

    Alors effectivement c'est ce que j'ai fait dans la nuit (je testais tout un tas de méthodes). J'ai donc ajouté des accesseurs dans le handler pour pouvoir en retirer quelque chose.

    Problème résolu.

    À bientôt et merci à toi.

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

Discussions similaires

  1. [SAX] Les méthodes startElement et endElement : Parser un XML avec SAX
    Par Davesique dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 14/02/2011, 19h53
  2. Réponses: 3
    Dernier message: 14/03/2007, 15h30
  3. Pb avec composite-id=>Récupérer les noms
    Par enjoy dans le forum JSF
    Réponses: 1
    Dernier message: 01/02/2007, 15h19
  4. [JTree avec des JCheckBox]Récupérer les "renderer".
    Par M4v3rick dans le forum Composants
    Réponses: 2
    Dernier message: 16/05/2006, 12h46
  5. problème avec strtok pour récupérer les vides
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 02/06/2005, 20h08

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