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 :

Comment parser un child d'un root element avec org.jdom ?


Sujet :

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

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment parser un child d'un root element avec org.jdom ?
    Bonjour,

    J'ai regardé le faq mais les librairies utilisés sont différentes de celles que j'utilise.

    Je voudrais parser le document xml suivant :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <clinicaldocument xmlns="urn:hl7-org:v3" xmlns:msg="urn:hl7-org:v3/mif" xmlns:voc="urn:hl7-org:v3/voc" xmlns:fo="http://www.w3.org/1999/xsl/format" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">
      <id root="2.16.840.1.113883.3.31.3.1.2.2.1" extension="dev_ser_400"/>
      <code code="103" codesystem="2.16.840.1.113883.3.31.4.1" displayname="compte rendu de reunion pluridisciplinaire"/>
      <title>fiche rcp</title>
      <effectivetime value="20070813000000"/>
      <confidentialitycode code="n"/>
      <setid root="2.16.840.1.113883.3.31.3.1.2.2.2" extension="td_ser_1137838"/>
      <versionnumber value="1"/>
      <author>
        <time value="20070813000000"/>
        <assignedauthor>
          <id root="2.16.840.1.113883.3.31.2.2" extension="123456789"/>
          <assignedperson>
            <name>
              <given>xavier</given>
              <family>amiot</family>
              <suffix>dr</suffix>
            </name>
          </assignedperson>
        </assignedauthor>
      </author>
    </clinicaldocument>
    Voici le code java que j utilise pour parser le 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
    24
    25
    26
    27
     
    import org.jdom.input.DOMBuilder;
    import org.jdom.input.SAXBuilder;
     
    ... code
     
    public BatchMessage parseMessage(InputStream strem) {
    org.jdom.Document document = null;
    	    SAXBuilder sxb = new SAXBuilder();
    	    try
    	    {
    	       //On crée un nouveau document JDOM avec en argument le fichier XML
    	       document = sxb.build(stream);
    	    } catch(Exception e) {
    	    	System.out.println("Couldn't read input XML file");	    	
    	    }
     
    	    Element rootElement = document.getRootElement();
     
     
     
    	    List nl = rootElement.getChildren();
    	    //rootElement.get
    	    String title = rootElement.getChildText("title");
     
    ... code
    }
    Ce code String title = rootElement.getChildText("title"); me retourne null.

    Je ne sais pas pourquoi. Je ne sais pas comment parser avec cette librarie.

    Merci

    Merci
    Dernière modification par tchize_ ; 07/10/2011 à 23h48. Motif: Préfixe

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    C'est parce que l'élément <title> est dans le namespace par défaut urn:hl7-org:v3 .

    Il faut donc le préciser quand on demande cet élément. Ne pas préciser de namespace, c'est demander un élément <title> qui n'est dans aucun namespace. Or celui que tu cherches est dans un namespace, donc pas ce que tu as demandé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Déclarer le namespace quelque part
    public static final Namespace hl7Namespace = Namespace.getNamespace("urn:hl7-org:v3");
     
    /* ... */
     
    String title = rootElement.getChildText("title", hl7Namespace);
    À noter que c'est généralement pareil avec toutes les biblis XML. Le namespace d'une balise fait partie de son nom, après tout. Namespace, quoi.

  3. #3
    Battosaiii
    Invité(e)
    Par défaut
    Merci c'est une excellent réponse.

Discussions similaires

  1. Comment parser un fichier XML avec un tag root avec prefix?
    Par davtypo3 dans le forum Général Python
    Réponses: 2
    Dernier message: 20/02/2014, 15h48
  2. Réponses: 1
    Dernier message: 15/05/2010, 20h32
  3. [XML] Comment parser ce fichier XML avec java !
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 13/03/2006, 12h56
  4. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  5. [XML] Comment parser ?
    Par GLDavid dans le forum Modules
    Réponses: 7
    Dernier message: 03/03/2005, 02h59

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