XSL ET Javascript - XML/XSL - Programmation
Marsh Posté le 19-10-2005 à 15:20:52
Déjà je ne vois pas de Javascript dans ton truc
Ce que tu as, c'est du JScript (donc le langage de script de chez Microsoft, compatible Javascript), utilisé dans l'xsl via un bel élément propriétaire msxsl:script
Donc attention, prend bien note qu'on ne peut pas mettre de script dans un XSL (sauf donc comme ici avec une extension propriétaire)
Ensuite, ton XSL, est-il appliqué côté serveur ? Ou appliqué par un quelconque logiciel (autre qu'un navigateur web), parce que pour filer la date d'aujourd'hui, tu peux la passer en paramètre lors de l'ouverture de l'xsl...
Marsh Posté le 19-10-2005 à 15:37:05
Bonjour FlorentG,
le code je l'exécute sur mon poste, le code n'est pas le mien.
Mon but est de comprendre comment mettre du Javascript dans dans un fichier XSL.
Je cherche de la documentation (même si ic je me suis trompé) parlant de Javascript dans XSL, si ça existe.
J'utilise Fop pour créer du PDF et j'ai l'intension d'utilisé une fonction Javascript qui va jouer le rôle de variable qui va être incrémenter à des endroits précis.
Merci.
Marsh Posté le 19-10-2005 à 16:01:06
Bah on peut pas mettre de script dans un XSL Comme dit, l'exemple que tu as donné utilise un élément propriétaire Microsoft, qui est une extension totale, et ne sera interpretée par personne
Donc si tu veux utiliser ça, faudra être sûr d'utiliser msxml comme lib...
Marsh Posté le 19-10-2005 à 16:36:41
Merci pour ta réponse, vu que je vois que tu t'y connais je vais te soumettre un problème. Je veux juste que tu me dises c'est possible ou non.
J'ai un For each (boucle 1) qui en contient un autre (boucle 2)
Boucle 1
Boucle2
/Boucle2
/Boucle1
Si avec une fonction position j'affiche le tour de boucle, je vais avoir une valeur incrémentale de de boucle 1, puis une de boucle 2.
Par exemple:
Boucle 1
1 <------- valeur renvoyé par <xsl:value-of select="position()"/>
Boucle 2 |
1 <--
2
Boucle 1
2
Boucle2
1
2
3
4
Ce que je veux c'est :
Boucle 1
2 <------- valeur renvoyé par <xsl:value-of select="position()"/>
Boucle 2 |
3 <--
4
Boucle 1
5
Boucle2
6
7
8
9
Si j'avais une variable incrémentable, je serais sortie d'affaire...
Merci.
Marsh Posté le 19-10-2005 à 16:38:21
je ne veux pas utiliser position dans le résultat que je veux, mais avoir un résultat par n'importe quel moyen.
Marsh Posté le 19-10-2005 à 15:12:19
Bonjour à tous!
j'ai récupérer du code que j'ai voulu tester pour voir comment se comportait le Javascript dans le XSL.
Page 8:
http://www.perfectxml.com/XSLFO.PDF
Voici la déclaration du Javascript
<msxsl:script language="JScript" implements-prefix="scriptExt">
function todaysDate()
{
var DateObj = new Date();
return DateObj.getMonth()+1 + "/" + DateObj.getDate() + "/" +
DateObj.getFullYear();
}
</msxsl:script>
et voilà l'appel
<fo:block color="gray" font-family="monospace" text-align="right" font-size="10pt" line-height="12pt">
Printed on:
<xsl:value-of select="scriptExt:todaysDate()" />
</fo:block>
Lorsque je le lance avec le XMl associé, j'obtiens l'erreur todaysDate requiert une instance d'Object comme premier argument.
Quelqu'un peut'il m'éclairer.
Merci.