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

XSL/XSLT/XPATH XML Discussion :

Xpath rechercher node avec double point


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 24
    Points
    24
    Par défaut Xpath rechercher node avec double point
    Bonjour,

    J'ai récupéré le projet d'un collège disparut.
    C'est du delphi et du Xpath.

    le xml est chargé,
    J'ai des noeuds du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <eii:TutuGroup id="1234" name="abc_987" attr1="abc" attr2="987">
    je fait
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    mynode := myXml.selectSingleNode('//eii:TutuGroup[@attr1=abc and @attr2=987]' ) ;

    je n'ai jamais de donnée.

    J'ai l'impression que le XPath s'en mêle les pinceaux avec le ":" dans le nom du nœud.
    Alors que quand je cherche un nœud simple (sans ":") ça marche bien
    Quelqu'un a-t-il une idée?

    D'avance mille merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est normal : eii ne fait pas partie du nom du noeud mais correspond à un namespace.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Mais alors comment puis-je faire ma recherche

    mon noeud s'appelle J'ai effectivement dans le noeud root
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <...... xmlns:eii="http://...." >
    Quel est la syntaxe correcte d'un selectSingleNode pour un noeud avec un namespace?

    tout les example des tutoriels que j'ai lus, les noeud sont des noeud "simple" et jamais avec un namespace.

    Si quelqu'un a une idée, je commence a désespéré.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Avec quelque logiciel que ce soit que j'ai trouvé croisser mon parcours, il faut toujours délimiter la valeur d'un attribut dans ce genre de usage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mynode := myXml.selectSingleNode('//eii:TutuGroup[@attr1="abc" and @attr2="987"]' ) ;

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Effectivement, dans l'exemple j'avais oublié les délimiters.

    mais cela ne change rien.

    délimiter ou pas je ne récupère rien

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    mais cela ne change rien.
    Si, une erreur de moins.

    Si vous n'avez pas d'idée claire encore sur la signification et les syntaxes opérant en namespace, vous pouvez faire ça à la première étape pour s'assurer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mynode := myXml.selectSingleNode('//*[local-name()="TutuGroup" and @attr1="abc" and @attr2="987"]' );
    Et puis après, lire des manuels sur le namespace.

Discussions similaires

  1. Récupération d'un Node avec XPath
    Par Ioan dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/03/2011, 18h56
  2. dessiner une ligne avec des point de coordonnées doubles
    Par tanguy.L dans le forum Débuter
    Réponses: 2
    Dernier message: 11/11/2008, 23h16
  3. Réponses: 11
    Dernier message: 11/09/2008, 19h14
  4. [XPATH]Recherche d'un noeud avec condition
    Par bolo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/01/2008, 22h00
  5. [XPath] recherche d'un node avec un attribut d'une valeur précise
    Par jerome.fortias dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/09/2007, 17h13

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