XSL ET Javascript

XSL ET Javascript - XML/XSL - Programmation

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
 

Citation :


 <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
 

Citation :


         <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.

Reply

Marsh Posté le 19-10-2005 à 15:12:19   

Reply

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...

Reply

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.

Reply

Marsh Posté le 19-10-2005 à 16:01:06    

Bah on peut pas mettre de script dans un XSL [:spamafote] 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...

Reply

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.

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed