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

XML/XSL et SOAP Discussion :

Lecture d'un arbre


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut Lecture d'un arbre
    Bonjour,

    Je débute en XML et j'ai un petit problème avec la lecture de celui-ci.

    J'ai un fichier XML et je voudrais faire une boucle dans un noeud pour récupérer la valeur du noeud ainsi que son nom.

    La structure de mon fichier est représenté comme celà:
    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    <Balise>
    <Test>
      <B1>Val1</B1> 
      <B2>Val2</B2> 
      <B3>Val3</B3> 
      <B4>Val4</B4> 
    </Test>
    <Test>
      <B1>Val5</B1> 
      <B2>Val6</B2> 
      <B3>Val7</B3> 
      <B4>Val8</B4> 
    </Test>
    </Balise>
    et mon script est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    objXML.load(Chemin_fichier)
     
    For Each Balise in objXML.selectNodes("/Balise/Test")
     
    ... là je bloque??
     
    Next
    Je voudrais pouvoir récupérer dans ma boucle le nom de ma balise "B1" et sa valeur "Val1" sans devoir faire appel à la fonction SelectSingleNode("B1").text

    Merci

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Balise in objXML.selectNodes("/Balise/Test/*")
    
    Next
    et ensuite tu peux utiliser les propriétés nodeName, text etc...

    ERE

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut
    Salut,

    Merci pour ta réponse. Ca marche nickel mais est il possible de récupérer les données de la premiere balise Test, faire un traitement puis récupérer les données de la seconde balise Test etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For Each Balise in objXML.selectNodes("/Balise/")
         For Each Details in objXML.selectNodes("/Test/*")
              ..... Récupérer les données de la 1ere balise Test
         Next
     
         .....Executer une tache
     
    Next

    Merci

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For Each Test in objXML.selectNodes("/Balise/Test")
         For Each Details in Test.selectNodes("./*")
     
         Next
    Next
    ou en dur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For Each Details in Test.selectNodes("/Balise/Test[1]/*")
     
    Next
     
    For Each Details in Test.selectNodes("/Balise/Test[2]/*")
     
    Next
    ...
    ERE

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 19
    Par défaut
    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 XmlParser(String fileName) {
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		try {
    			DocumentBuilder parser = factory.newDocumentBuilder();
    			Document document = parser.parse(new File(fileName));
    			Node root = document.getFirstChild();
    			while (root.getNodeType()!=Node.ELEMENT_NODE) root = root.getNextSibling();
    			System.out.println(root.getNodeName());
    			NodeList list = root.getChildNodes();
    			for (int i=0; i<list.getLength(); i++) {
    				Node node = list.item(i);
    				//System.out.println(node.getNodeName() + " : " +node.getNodeType());
    				if (node.getNodeName().equals("date")) {
    					System.out.println("Date : " + node.getTextContent());
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    A l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlParser parser = new XmlParser("CHEMIN DU FICHIER XML");

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    @sympas88: sauf que depuis le début de la discussion tout est fait en VBS et non en Java

    ERE

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 19
    Par défaut
    Bhein j'ai pas lu la diss . J'ai lu le problème et voilà j'ai répondu

  8. #8
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Bah, ça partait d'un bon sentiment !

    ERE

  9. #9
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut
    Mercui les mecs C'est cool de votre part

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

Discussions similaires

  1. Création et lecture d'un arbre DOM
    Par iubito dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/03/2011, 18h52
  2. OpenLdap - Comment gerer les autorisation de lecture de l'arbre ?
    Par sidee dans le forum Administration système
    Réponses: 1
    Dernier message: 31/07/2009, 13h33
  3. Lecture de l'arbre syntaxique
    Par glayag dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 19/01/2008, 20h22
  4. Cherche principe lecture arbre
    Par Invité(e) dans le forum C
    Réponses: 6
    Dernier message: 03/05/2006, 23h03
  5. Algo lecture arbre ou requête
    Par fplanglois dans le forum SQL
    Réponses: 5
    Dernier message: 14/10/2003, 14h56

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