Le processeur XSL est en train de matcher un noeud dans mon document, mais au moment de transformer un de ces noeud, j'ai besoin de récupérer une valeur plus haut dans mon document. J'ai fais quelques essais mais apparemment je ne peux pas sortir de l'espace du noeud courant...à part en utilisant Ancestor. C'est le seul moyen ?
Disons que au niveau du process XSL nous sommes dans un :
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
21
22 exemple : <Security> <Users> <User> <ID>39</ID> <Name>Sylvain</Name> </User> ... </Users> </Security> ... <LignesdeTableau> <Ligne> ...champs... <ID>39</ID> </Ligne> <Ligne> ...champs... <ID>40</ID> </Ligne> </LignesdeTableau>
Autre chose, dans "ancestor::node()/Users/User[ID=39]", au lieu du nombre 39 en dur je souhaite mettre la valeur de l'élément <ID> en cours du match de la "Ligne" (l'équivalent de Value of Select /ID).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <xsl:template match="Ligne"> <tr> <td> <xsl:value-of select="CHAMPx"></xsl:value-of> <td> <td> <xsl:value-of select="ancestor::node()/Users/User[ID=39]/Name"> </xsl:value-of> <td> </tr> </xsl:template>
Vive les vacances 8)
Sylvain
Partager