Valeur d'une fonction - XML/XSL - Programmation
Marsh Posté le 21-10-2006 à 18:46:30
Ben ouais, tu sélectionnes un truc, mais dans le sélect tu fait un concat... Donc tu va récupérer le résultat du concat
Il faut que le chemin soit un noeud. Là t'as une string (!)
Marsh Posté le 21-10-2006 à 19:05:25
Oui j'avais bien imaginé, mais y a-t-il un moyen de le transformer en noeud afin de pouvoir apres recuperer sa valeur?
Mon probleme sans faire un concat, c'est que
<xsl:value-of select="../../items/item/(current()/name)/value)"/>
Est illegal ... J'ai aussi essayé en mettant current()/name dans une variable et après la mettre dans le string mais c'est aussi interdit.. Du coup je commance a secher
Marsh Posté le 22-10-2006 à 10:47:27
Idem Mais ça fait depuis hier soir je que lis de la doc sur xsl , xpath & co et j'ai toujours rien trouvé
Marsh Posté le 22-10-2006 à 10:51:30
Ah attend, j'me souvient d'un truc, style :
<xsl:template name="pouet"> |
Et
<xsl:call-template name="pouet"> |
C'est un truc dans le genre...
Marsh Posté le 22-10-2006 à 10:56:48
J'ai déjà essayé Quand je fais un :
<xsl:value-of select="../../items/item/$truc/name/value"/>
Mais ce con me pond un
Error in expression ../../items/item/$truc/name/value: Unexpected token [$] in path expression
Marsh Posté le 22-10-2006 à 11:06:49
http://www.jeunesliberaux.ch/upload/tmp.xsl
http://www.jeunesliberaux.ch/upload/tmp.xml
Merci
Marsh Posté le 22-10-2006 à 11:58:57
[précision entre deux recherches]
T'as pas besoin de tout préfixer avec current(), genre :
Code :
|
Peut-être réécrit
Code :
|
Marsh Posté le 22-10-2006 à 12:05:20
merci
Marsh Posté le 22-10-2006 à 12:15:07
Done !
Bon, va falloir un peu revoir ton XSL qui est un peu en bordel
Donc j'ai modifié là où t'as mis le <!-- ICI --> :
Code :
|
J'ai fait une template en-dessous du coup :
Code :
|
Et ouala J'ai bien 215 dans en valeur de id... Maintenant faut faire les autres, d'où une réorganisation nécessaire de ta XSLT.
Donc le truc, c'est qu'on peut pas mettre comme ça de variable dans un xpath. T'es obligé d'utiliser :
Code :
|
Marsh Posté le 22-10-2006 à 12:15:33
Au passage si tu te fais chier : http://www.dpawson.co.uk/xsl/sect2/sect21.html
Marsh Posté le 22-10-2006 à 12:36:05
Merci beaucoup Florent, je connaissais pas le coup du *[name()=$name]
Je vais lire ton site web.
Encore merci
Marsh Posté le 21-10-2006 à 18:44:13
Bonjour, le problème est simple à expliquer. J'ai :
<xsl:value-of select="concat('../../items/item/',current()/name,'/value')"/>
Et au lieu d'obtenir la valeur du noeux value, j'obtiens le path (c'est à dire ../../items/item/idvalue dans le cas ou current/name = id)
Je ne comprend pas bien pourquoi, on dirait que value-of me retourne directement ce qui est retourné par concat, au lieu de le prendre comme un noeud.
Est-ce que qqn peut m'éclairer?
Merci beaucoup
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait