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 :

recupération élément précédent + apply-templates


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut recupération élément précédent + apply-templates
    Je vous expose le problème.

    Dans mon xsl, j'ai à un moment donné un apply-templates sur un noeud de type "enseignement".

    J'ai evidemment le template "enseignement" correspondant.

    L'exécution de l'apply-templates a lieu n fois ce qui correspondont donc à n noeud du fichier xml.

    Mon problème est le suivant :

    A la ième exécution de l'apply-templates comment retrouver le noeud sur lequel on travaillait à la (ième -1) exécution?

    Le soucis réside dans le fait que position() retourne bien la position du noeud de la liste que le apply-templates traite mais qqch du style enseignement[position()-1] se base sur le fichier xml et non la liste courante.

    Merci d'avance pour vos éclaircissements

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    personne ne sait?

  3. #3
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    et bien je dirais peut être ceci...
    le "enseignementt" précédent devrait être remonté ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preceding-sibling::enseignement[1]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    ok Luta je vais voir avec cette solution
    mais je comprend pas le [1]
    car le noeud precedent ne se situe pas nécessairement en 1ere position ?
    mais apriori ce que je veux faire n'est pas impossible?
    je suis pas obligé de passer par de la récursivité?
    en tout cas merci pour cette proposition

  5. #5
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    ce n est aps comme ça que ça marche
    - preceding-sibling vise ceux qui sont avant l'élément courant
    - enseignement spécifie de nom de l'élément qui nous intéresse
    - [1] sa position par rapport au noeud courant
    ce qui nous donne en français
    le premier élément enseignement précédent l'élément courant

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    ok je comprends mieux mais en fait mon soucis c'est que le noeud precedent n'est pas necessairement frere dans mon cas


    exemple :

    <a>
    <b>
    <b> -> recupérer celui la ( ca sera mon précédent)
    <b>
    </a>
    <a>
    <b>
    <b>
    <b> -> a partir de la je voudrais recup mon précédent)
    </a>

  7. #7
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    je crois que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preceding::enseignement[1]
    devrait fonctionné

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    j'ai peut etre une idée
    passer par la position absolue : count(preceding::enseignement)+1
    puis faire un preceding::enseignement (difference des 2 positions absolues)
    mais comment arriver dans mon template en connaissant au préalable la position absolue du noeud précédent de la liste parcourue par apply-templates?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    ok je teste
    encore merci

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 21
    Par défaut
    ca n' apas l'air de marcher d'autant plus qu'il arrive a trouver un précédent meme quand mon apply-templates ne doit appliquer qu'une fois le template correspondant (car un seul noeud remplit les conditions)

    et est ce normal de pour voir faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preceding::enseignement[1]/heure/@fin
    dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="enseignement">

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

Discussions similaires

  1. apply-templates & co
    Par arnobidul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/07/2005, 11h50
  2. [XSLT] Différence entre apply-templates et call-template
    Par Cpt.FLAM dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/04/2005, 18h47
  3. différence call-template et apply-templates
    Par mousstik dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 08/11/2004, 12h28
  4. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 08h38
  5. [xsl] alterner de style entre deux apply-template
    Par laouache dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 23/04/2004, 11h49

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