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 et java comment faire?


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par défaut Xml et java comment faire?
    Bonjour j'ai une chaine de caractère dans laquelle je possède des données sous forme d'un xml comme ceci
    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
    <?xml version="1.0" encoding="utf-8"?>
    <StudyLevelResponse>
      <Study>
        <StudyInstanceUID>1.2.826.0.1.3680043.2.455.30.11.1271002.8.240372</StudyInstanceUID>
        <StudyID>1</StudyID>
        <PatientID>SIR234739</PatientID>
        <PatientName>RobertMAYER</PatientName>
        <StudyDate>2009-08-27</StudyDate>
        <StudyHour>09:35:05</StudyHour>
        <referringphysician>MAYERh07^Robert</referringphysician>
        <StudyDescription>Abdomen</StudyDescription>
        <requestingphysician>MAYERy4^Robert</requestingphysician>
        <sourceae>TEST</sourceae>
        <AccessionNumber>1</AccessionNumber>
      </Study>
      <Study>
        <StudyInstanceUID>1.2.826.0.1.3680043.2.455.30.11.1271002.8.240311</StudyInstanceUID>
        <StudyID>1</StudyID>
        <PatientID>SIR345161</PatientID>
        <PatientName>VictoireJEQUECE</PatientName>
        <StudyDate>2009-08-27</StudyDate>
        <StudyHour>11:02:10</StudyHour>
        <referringphysician>JEQUECEHvZ^Victoire</referringphysician>
        <StudyDescription>Abdomen</StudyDescription>
        <requestingphysician>VALENTE^Patrick^^^</requestingphysician>
        <sourceae>TEST</sourceae>
        <AccessionNumber>1</AccessionNumber>
      </Study>
    </StudyLevelResponse>
    comment à partir de cette chaine récupérer les valeur de chaque balise? j'ai cherché sans trop de succès pour l'instant

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    Salut,

    A moins de ne pas avoir le choix, il existe des API gérant le xml qui devraient grandement te faciliter le travail

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par défaut
    j'ai essayer de voir mais je n'en trouve pas qui prennent un String pour faire ce que je veux mais elles utilisent des fichiers xml or moi j'ai un String

  4. #4
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 133
    Par défaut
    Généralement, les API de parsing permettent de prendre en entrée un Reader. Si tu as un String, tu peux utiliser la classe StreamReader, qui étend Reader.

  5. #5
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Avec jdom, ceci pourrait t'aider:

    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
    
        public static Document readFromString(String xmlString)
        {
            try
            {
                SAXBuilder builder = new SAXBuilder();
                return builder.build(new ByteArrayInputStream(xmlString.getBytes()));
            }
            catch(IOException e)
            {
    	   System.err.println("IOException readFromString: " + e.getMessage());
                return null;
            }
            catch (JDOMException e)
            {
    	   System.err.println("JDOMException readFromString: " + e.getMessage());
                return null;
            }
        }
    

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par défaut
    en utilisant le code de ttttnht j'ai créé une methode d'affichage inspiré de ce tuto http://cynober.developpez.com/tutori...xml/jdom/#L3.2 et voici mon code
    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
     
    public void afficheALL(String xmlString)
    {
     
    document =readFromString( xmlString);
     
     //On crée une List contenant tous les noeuds "etudiant" de l'Element racine
     List listEtudiants = racine.getChildren("Study");
     
     //On crée un Iterator sur notre liste
     Iterator i = listEtudiants.iterator();
    	 while(i.hasNext())
    	{
    	//On recrée l'Element courant à chaque tour de boucle afin de
          //pouvoir utiliser les méthodes propres aux Element comme :        //selectionner un noeud fils, modifier du texte, etc...
    		Element courant = (Element)i.next();
    	 //On affiche le nom de l'element courant
    						       System.out.println(courant.getChild("PatientName").getText());
    	}
    }
    sauf que quand j'appelle la methode afficheAll(StringXmlApproprié) j'ai ce bloc d'erreurs
    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
     
    Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException
    	at $Proxy1.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.security.PrivilegedActionException: javax.script.ScriptException: sun.org.mozilla.javascript.internal.WrappedException: Wrapped java.lang.NullPointerException (<Unknown source>#23) in <Unknown source> at line number 23
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler.invoke(Unknown Source)
    	... 9 more
    Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.WrappedException: Wrapped java.lang.NullPointerException (<Unknown source>#23) in <Unknown source> at line number 23
    	at com.sun.script.javascript.RhinoScriptEngine.invoke(Unknown Source)
    	at com.sun.script.javascript.RhinoScriptEngine.invokeMethod(Unknown Source)
    	at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler$1.run(Unknown Source)
    	... 11 more

Discussions similaires

  1. Imprimer en JAVA. Comment faire ?
    Par khaledzz9 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/07/2009, 10h33
  2. [DOM XML] Domdocument xml et tableau : comment faire un tri ?
    Par youtch dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 23/03/2009, 14h37
  3. [Java] comment faire les conditions ?
    Par tarekphp dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 22/08/2008, 09h39
  4. XML et MCD : Comment Faire ?
    Par soltani.slim dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 10/10/2005, 14h19
  5. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 12h00

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