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 :

[XSL]Obtenir le noeud précédent le noeud courant


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut [XSL]Obtenir le noeud précédent le noeud courant
    Bonjour,

    Ma faute doit être toute bête !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    noeud <xsl:value-of select="position()"/>
        <br/>
        <xsl:value-of select="../keyword[position()]/@kwdword"/>
        <br/>
    Et là, le résultat est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    noeud 1
    kwdword1
    noeud 2
    kwdword1
    noeud 3
    kwdword1
    Par contre quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="../keyword[2]/@kwdword"/>
    ça me donne bien
    Comment se fesse ??

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Apparemment, le keyword[position()] me renvoie le 1er élément, par contre l'instruction <xsl:value-of select="position()" /> me retourne bien la position de l'élément courant.

    J'ai trouvé une astuce qui est de stocké la position-1 et d'afficher l'élément avec la position sauvée dans la variable, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:variable name="position" select="position()-1" />
    keyword[position()=$position]/@kwdword
    Et ça me retourne l'élément juste avant l'élément courrant.

    Je sais même pas pq j'ai posté ce post !!!

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,
    Citation Envoyé par ethan_decoster Voir le message
    J'ai trouvé une astuce qui est de stocké la position-1 et d'afficher l'élément avec la position sauvée dans la variable, comme ceci :
    L'axe XPath preceding-sibling a justement été conçu pour cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    noeud <xsl:value-of select="position()"/>
        <br/>
        <xsl:value-of select="preceding-sibling::keyword[1]/@kwdword"/>
        <br/>

Discussions similaires

  1. E4X : récupérer le noeud avant le noeud précédent
    Par gambic dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 27/11/2009, 19h58
  2. [XSLT] rechercher un noeud depuis le noeud courant
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 21/12/2005, 18h47
  3. [Java] Obtenir le XPath d'un noeud DOM
    Par krappa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/09/2005, 16h06
  4. [XSL][XHTML] test sur position de noeuds (text() et autres)
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/09/2005, 17h47
  5. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

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