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 du xml sous forme de string avec JDOM


Sujet :

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

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 35
    Par défaut Parser du xml sous forme de string avec JDOM
    Bonjour,

    Je fais appelle à vous car j'ai quelques problèmes en Java.
    J'ai déjà utilisé 1 fois JDOM sans problème grâce au très bon tutoriel du site, mais j'allais cherché un fichier XML.
    Actuellement je récupère sur le net via http le contenu d'une page au format xml (en fait, j'appelle une page php qui via me former un document xml au moment de l'appelle). J'ai donc une structure xml de la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <racine>
    <node>
    </node>
    <node>
    </node>
    </racine>
    Cette structure est d'abord stockée dans un BufferedReader que je parcours pour stocker dans une String. Ca c'était pour mes tests qui n'ont pas été très concluant mais je peux très bien utiliser directement le BufferedReader directement.
    J'aimerais donc pouvoir parcourir ma structure XML, j'ai donc immédiatement pensé à JDOM, mais ça coince. Le code du tutoriel est le suivant:
    http://cynober.developpez.com/tutori...xml/jdom/#L3.1

    Réadapté comme suit par mes soins:
    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
    import java.io.*;
     
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
     
    public class JDOM2
    {
       static org.jdom.Document document;
       static Element racine;
     
       public static void jdom(String in)
       {
          //On crée une instance de SAXBuilder
          SAXBuilder sxb = new SAXBuilder();
          try
          {
             //On crée un nouveau document JDOM avec en argument le fichier XML
             //Le parsing est terminé ;)
        	  //document = sxb.build(new File(in));
        	  document = in;
          }
          catch(Exception e){}
     
          //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
     
          //Méthode définie dans la partie 3.2. de cet article
          afficheALL();
       }
    J'ai donc un nullPointException, mon problème vient donc du fait que je n'arrive pas à créer un "Document" à partir de ma String...

    Si vous pouviez m'aider.
    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new SAXBuilder().build(new ByteArrayInputStream(string.getBytes()));
    (le principe est d'utilise un flux au lieu d'un file, tu devrais même pouvoir utiliser le flux de la page php directement, sans passer par une string intermédiaire)


  3. #3
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Essais ce code, en passant il faut mettre la partie racine + afficheALL apres document

    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
     
     
     
    public static void jdom(String in) {
        //On crée une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            //On crée un nouveau document JDOM avec en argument le fichier XML
            document = sxb.build(new ByteArrayInputStream(in.getBytes()));
     
           //Le parsing est terminé ;)
          //document = sxb.build(new File(in));
     
          //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
     
          //Méthode définie dans la partie 3.2. de cet article
          afficheALL();
     
        } catch(Exception e){
            System.err.println(e.getMessage());
        } 
    }
    Grille

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/09/2012, 16h07
  2. Import XML sous forme de table plutot que string
    Par Pierrick81 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/05/2011, 14h12
  3. [Linq To XML] - Requête sous forme de string
    Par Mattgic dans le forum Linq
    Réponses: 5
    Dernier message: 06/07/2010, 13h13
  4. [Stratégie]Résultat d'une formule sous forme de String
    Par leminipouce dans le forum Langage
    Réponses: 12
    Dernier message: 21/02/2006, 11h40
  5. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55

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