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 :

[DOM4J] Parser un xml [XPATH]


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
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut [DOM4J] Parser un xml
    Salut,

    J'ai du rarement parser un document XML, donc ne rigolais pas si la question parait très simple

    Je voudrais juste parser un document XML est récupéré des nodes sans connaitre leurs noms.

    Exemple :

    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
    <preferences EXTERNAL_XML_VERSION="1.0">
      <root type="system">
        <map/>
          <node name="connections">
    	   <map/>
                <node name="uat">
    				<map>
    		            <entry key="user" value="member" />
    		            <entry key="pass" value="member" />
    		            <entry key="host" value="localhost" />
    		            <entry key="port" value="2097" />
    		        </map>
                </node>
    			<node name="uat2">
    				<map>
    		            <entry key="user" value="membe2" />
    		            <entry key="pass" value="member2" />
    		            <entry key="host" value="localhost" />
    		            <entry key="port" value="2088" />
    		        </map>
                </node>
          </node>
    	  <node name="mapping">
    		<map>
                <entry key="xxx" value="yyy" />
                <entry key="xxx2" value="yyy2" />
    		</map>         
    	  </node>
     
      </root>
    </preferences>
    Je voudrais pouvoir récupérer le noeud uat, mapping ... c'est tout.

    J'ai fait un petit programme qui se base sur Sax mais j'ai pas réussis à le faire marcher.

    Pouvez vous me donner un lien sur une doc qui me montre comment faire ce que je voudrais. Ou bien un exemple de votre part

    Merci beaucoup

  2. #2
    Membre expérimenté Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Par défaut
    dom4j et une expression Xpath du style "//uat" :

    http://www.dom4j.org/

    Pour les exemples :

    http://www.dom4j.org/dom4j-1.6.1/guide.html

    et notamment :
    List list = document.selectNodes( "//foo/bar" );

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Moi je connais pas "uat" il faut que je l'a lit, les seuls que je connais sont les keys user, pass, host.

    dom4j pourrait it faire l'affaire ?

  4. #4
    Membre expérimenté Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Par défaut
    Oui pas de problème grace à Xpath.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List list = document.selectNodes( "//entry" );
    Avec cela tu va récupérer une liste de toute les nodes entry.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Merci,

    Au fait j'essaye d'utiliser cette méthode, mais j'ai un petit soucis. Je ne sais pas comment récupérer le nom de mon noeud

    voila ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     SAXReader reader = new SAXReader();
     org.dom4j.Document document = reader.read(xmlFileName);
     List list = document.selectNodes("//node");
     for ( Iterator i = list.iterator(); i.hasNext(); ) 
     {
       org.dom4j.Element element = (org.dom4j.Element) i.next();
       System.out.println(element.getName());
     }
    Avec ça il m'affiche node, moi je voudrais afficher l'attribut name du noeud nod

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exemple : <node name="uat"> uat dans ce cas

  6. #6
    Membre expérimenté Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.attributeValue("key"); // par exemple

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

Discussions similaires

  1. [C#] Parser du XML
    Par karl3i dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/02/2009, 09h46
  2. [DOM] Parser un XML
    Par Zapan dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/12/2005, 11h41
  3. [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
  4. [FLASH MX2004] Parser un XML en action script
    Par jejeman dans le forum Flash
    Réponses: 6
    Dernier message: 20/09/2005, 17h25
  5. [XSL] Parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/07/2005, 15h47

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