JScript + XSL

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

JScript + XSL

Message par lpgc »

bonjour,

j'ai un problème en exécutant du javascript dans du XSL

cela fonctionne très bien sous IE

sous Firefox on obtient le message suivant :
Erreur lors de la transformation XLST : Une fonction d'extension XPath inconnue a été appelée.

En fait en recherchant sue le Web, la question est souvent posée
http://groups.google.com/group/netscape ... 022b6c365e

Depuis 2005 toujours pas de solus ?

Merci
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

voici le xml et le xsl pour faire un éventuel test

testjs.xml

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="testjs.xsl"?>
<xml><dvd title="TestTitle"></dvd></xml>
testjs.xsl

Code : Tout sélectionner

<xsl:stylesheet
     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:msxsl="urn:schemas-microsoft-com:xslt"
     xmlns:xslscript="myJavaScript">

  <msxsl:script language="javascript" implements-prefix="xslscript">
    <![CDATA[
      function toUpper(value) {
        return value != null ? value.toUpperCase() : "";
      }
    ]]>
  </msxsl:script>

  <xsl:template match="/">
    <html>
      <body>
        <xsl:value-of select="xslscript:toUpper(string(//dvd/@title))"/>
      </body>
    </html>
  </xsl:template>

</xsl:stylesheet> 
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: JScript + XSL

Message par calimo »

lpgc a écrit :bonjour,

j'ai un problème en exécutant du javascript dans du XSL
Une fonction javascript ou jscript ? Ce n'est pas pareil :roll:
On a déjà du te le dire, mais je répète : http://fr.wikipedia.org/wiki/JScript :wink:

Le message dont tu parles, il est dans la console d'erreur ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

je crois que c'est réellement du javascript

Pour avoir plus facile j'ai recopier les codes sur le site :

http://www.dvdlib.be/tutor/xsl/test/testjs.xml

d'après ce que j'ai pû lire ce n'est pas implémenté sous Firefox
du moins dans la version actuelle

C'est bien pratique quand même : j'avais une zone xml

<dtaquis>20070507</dtaquis> de laquelle je dois faire - 4 jours

et faire un traitement sur tout les records dans cette période
en javascript c'est très facile à faire

http://www.dvdlib.be/dvdtheque/mydvd.ph ... =3&param=3

( la 1ère partie du tableau n'est de ce fait pas réalisée sous Firefox )
sous IE le traitement est effectué

On peut mettre javascript ou JScript au niveau du language... le résultat est le même

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Techniquement, je crois que tu rencontres le bug 221640. Apparemment ça pourrait peut-être marcher si tu utilisais un évènement onload pour démarrer ton script quand la page a été transformée.

Cela dit, j'ai l'impression que, dans ton cas, tu ne travailles pas forcément au bon niveau. Si je comprends bien, tu génères ta page en PHP, tu peux donc tout à fait faire la génération du document au format souhaité du côté serveur.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

Merci pour les réponses,

en fait je ne suis pas bloqué, je sais qu'il existe des solus alternatives
mais qui oblige le serveur à fournir une date "paramètre" supplémentaire dans le xml ( traitement dans le xml :oops: )
( c'est déjà le principe que j'utilise pour détecter les nouveautés depuis la dernière visite :
cookies envoyé au serveur qui donne un tag xml <new /> )

mais c'est quand même un peu frustant de voir que certain browser ne permettent pas
l'utilisation des langages évolués au niveau du xsl

j'ai lu quelque part que c'était prévu dans l'une des futures versions de Firefox

Ce n'est pas du javascript au niveau de la page html, c'est du javascript exécuté au niveau du xsl

En bref dans le xsl je récupère la date d'acquisition la plus récente,
je fais via du "javascript xsl" cette date - 4 jours
et je construis le tableau html par le xsl pour les records compris entre ces 2 dates

Il existe certainement aussi des instructions xsl qui permettent
la manipulation des chaines de caractères et de calcul sur les dates
Mais le JScript est idéalement simple pour ce genre de traitement

Merci
Christian

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités