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 :

Connaitre l'existence d'une balise xml


Sujet :

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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut Connaitre l'existence d'une balise xml
    Bonsoir,
    Je souhaiterai savoir si dans mon fichier xmlune balise est présente ou non.
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <annuaire>
    <personne>
       <age>45</age>
       <nom>Toto</nom>
    </personne>
     
    <personne>
       <nom>Tata</nom>
       <ville>Paris</ville>
    </personne>
    </annuraire>
    J'arrive à parcourir mon fichier xml avec recuperation des noms sans problèmes . Par contre je voudrais savoir avec jdom comment puis je tester l'existence de la balise age (afin d'en recupérer la valeur par la suite)?

    En gros est il possible de récupérer le nom de la balise qui suit la balise <personne> ?

    merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Tu devrais utiliser des expressions XPATH pour ta recherche.
    //age par exemple renvoie tous les noeuds "age" où qu'ils soient
    //personne/age renvoie tous les noeuds "age" ayant pour parent direct un noeud "personne".

    Après il suffit d'utiliser la classe XPath de JDOM.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    merci de ta réponse, j'avais deja commencé à regarder xpath mais en fait je voudrais juste recuperer le nom de la balise qui suit personne : ici age et 45 dans le premier cas et nom et Tata dans le deuxieme cas.

    Xpath est il toujours la meilleure solution?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Ben XPath c'est la norme de recherche d'XML, donc oui, c'est la plus approprié, la plus souple, évolutive et puissante.
    Ici faudrait sans doute utiliser //personne/*[1] ou //personne/descendant::*[1]
    //personne/*[1]/name() pour avoir le nom du noeud.
    //personne/*[1]/. devrait retourner la valeur.


    La seule contrainte c'est qu'il faut apprendre la norme, donc tu peux aussi te démerder en java pour faire sans xpath, mais en cas d'évolution il faudra changer la séquences des appels à getDescendants() et getContent(), etc.
    Alors qu'en XPath t'auras qu'une ligne a changer.

  5. #5
    Membre régulier Avatar de dgouyette
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Points : 89
    Points
    89
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (XPath.selectNodes(document, xPath).size() == 1) {
    	return true;
    } else {
    	throw new Exception("verifierPresenceNoeud La requête xpath : " + xPath+ " n'a pas été trouvé dans le document"+ nomNoeud);
    }
    Ce genre de code te permettra de vérifier que ta requête XPath à retourné 1 noeud correspondant, à toi de le faire évoluer, en tout cas, c'est la meilleure facon de faire (utiliser XPath) pour manipuler des noeuds XML

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    j'aimerai bien testé tout ca mais meme si mon programme compile j'ai toujours des erreurs dans le fichier Xpath.java savez vous d'ou cela peut venir? car je ne peux pas tester vos exemples

    par contre en requete xpath je vais reprendre celle donnée par l'utilisateur avant toi quand j'aurai réglé mon probleme.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Tu ne devrais pas avoir d'erreur de compilation sur XPath.java, pour la bonne raison qu'il est déja compilé et fourni par JDOM.
    Tu importes le bon? org.jdom.xpath.XPath

Discussions similaires

  1. Vérifier existence d'une balise XML
    Par aurelie83 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2008, 16h21
  2. [XML][PHP]Extraire balise img dans une balise xml
    Par thierry232323 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/10/2006, 13h25
  3. Ajout d'une balise XML
    Par spynux dans le forum Langage
    Réponses: 5
    Dernier message: 31/05/2006, 13h06
  4. [xsl] mauvaise interprétation du contenu d'une balise XML
    Par Cédric B. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/01/2006, 12h59
  5. [JDOM] données un attribut à une balise xml
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 09/07/2004, 15h54

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