salut,
je souhaiterais savoir si le xslt permet de déclarer une variable sous forme de tableau.
Merci.
Version imprimable
salut,
je souhaiterais savoir si le xslt permet de déclarer une variable sous forme de tableau.
Merci.
D'abord, il faut te souvenir que les variables XSL ne sont pas tellement variables (elles fonctionnent plutôt comme des contantes)... De plus, dedans, tu ne peut stocker que quelque chose compatible XML soit des noeuds, des expressions XPath. Donc ton tableau doit être "xmlisé"
Tu ne peux pas stocké de chemin xpath dedansCitation:
Envoyé par xmarabout
pour plus de detail: http://erwy.developpez.com/variable/
Erwy écrit:
Sorry l'ami, mais même dans l'exemple que tu donnes (le lien) il y a des exemples de chemin Xpath:Citation:
Tu ne peux pas stocké de chemin xpath dedans
Et j'ai déjà eu l'occasion de stocker dans des variables des expressions XPath telles queCode:
1
2
3 <xsl:variable name= "var1" select="/A"/> <xsl:value-of select="racine/valeur[position()=$var]"> ...
Ce qui est pour moi une expression XPath (il y a peut être un problème de vocabulaire)Code:<xsl:variable name= "var1" select="sum(/a[@b < 6])"/>
Effectivement, il y a bien un problème de vocabulaire.Citation:
Envoyé par xmarabout
Dans la déclaration de la variable, c'est bien une expression XPath qui se trouve dans l'attribut select, par contre, lors de l'éxecution, c'est le résultat de l'évaluation (booléen, chaîne, nombre ou node-set) de l'expression XPath qui est stocké dans la variable.
Oui je pense.Citation:
Envoyé par xmarabout
imaginons ce document
Imaginons la variableCode:
1
2
3
4
5
6
7
8 <racine> <b> <a>1<a> <c> <a>2<a> </c> <b> </racine>
<xsl:variable name="noeudA" select="a"/>
Si c'etait le Xpath qui etait stocké
quand je ferais un value-of de $noeudA et que l'element courant est b j'aurais 1
quand je ferais un value-of de $noeudA et que l'element courant est c j'aurais 2
Hors ce n'est pas le xpath qui est stocké mais son evaluation lors de sa premiere declaration
si la varaible est declare sur b sa valeur sera toujours 1 , sur c toujours 2.
Quand tu parles de noeuds je pense que tu parles de fragmentnode.
Attention ceux ci n'ont le comportement de vrai noeud qu'a partir de xslt 2.0 il me semble(pas testé) mais comme une chaine de caractere (balise exclue).Code:
1
2
3 <xsl:variable name="noeudA" > <a>1</a> </xsl:variable>
Voir le lien :wink:
Je pense que tu comprends pourquoi je t'ai repris.
Voilà qui est clarifié... Excusez-moi ( :oops: )de ma précipitation qui a entrainé ce problème de vocabulaire... Nous parlions bien de la même chose
:wink:
Tu es tout excusé, c'est simplement que la question "comment je fais pour stocké un xpath et l'utilisé plus tard" reviens frequemment.
On est donc assez vigilant sur le sujet :wink:
bonne journée