salut,
je souhaiterais savoir si le xslt permet de déclarer une variable sous forme de tableau.
Merci.
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 dedansEnvoyé 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: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 que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:variable name= "var1" select="sum(/a[@b < 6])"/>
Effectivement, il y a bien un problème de vocabulaire.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.
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
Oui je pense.Envoyé par xmarabout
imaginons ce document
Imaginons la variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:variable name="noeudA" > <a>1</a> </xsl:variable>
Voir le lien![]()
Je pense que tu comprends pourquoi je t'ai repris.
Voilà qui est clarifié... Excusez-moi ()de ma précipitation qui a entrainé ce problème de vocabulaire... Nous parlions bien de la même chose
![]()
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![]()
bonne journée
Partager