From: Aurélie Sérieux (aserieux@ydris.com)
Date: 27/02/2001 - 08:39
Bonjour,
Merci de votre réponse, j'utilise Xalan donc je pense que le package à
utiliser est org.apache.xalan.extensions : je vais me pencher dessus.
Cependant, il est vrai que je préfèrerais largement utiliser une solution
100% XSL, mais je n'ai pas trouvé... Voila ce que j'aimerais faire :
- Dans mon document XML, j'ai la longueur et la largeur de mon produit,
par exemple :
<OF>
<longueur>100</longueur>
<largeur>150</largeur>
...
</OF>
- Dans mon document XSL, j'affiche un récapitulatif contenant la longueur
totale et la surface totale : j'utilise la fonction sum() pour la longueur
totale et ça marche, mais pour la surface ça n'est pas possible puisque
"longueur * largeur" n'est pas un noeud !!! Or sum() prends un ensemble de
noeuds en argument... Et c'est là que j'utilise JavaScript, qui fait la
sommation au fur et à mesure du parcours de mon document.
Peut-être existe-t-il un moyen 100% XSL qui permette de faire cette somme,
ou de transformer mon expression "longueur * largeur" en noeud ?
Merci,
Aurélie
-----Message d'origine-----
De : Jandia, Cyril [mailto:Cyril.Jandia@Restaupro.com]
Envoyé : mardi 27 février 2001 08:21
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: Formatage de nombres
Hello Aurelie,
Je crois que vous confondez JavaScript cote client (c'est a dire le
navigateur)
et le JavaScript cote transformation XSLT :
pour le JavaScript cote XSLT, avec l'implementation MSXML3 (*) en tout cas,
la syntaxe est :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"(voir Note 1)
xmlns:as="urn:schemas-votre-domaine-com:aurelie-serieux">
<msxsl:script language="JavaScript"
implements-prefix="as">
var maVariable = "";
function getMaVariable() {
return maVariable;
}
function setMaVariable(newValue) {
maVariable = newValue;
return ""; // grossiere astuce pour que "xsl:value-of" soit content...
}
</msxsl:script>
... etc
... <xsl:value-of select="as:getMaVariable()"/> ... ou bien :
... <xsl:value-of select="as:setMaVariable('toto est content')"/>
... etc
</xsl:stylesheet>
Note 0 : oui, je sais, c'est "lourd", mais c'est "academique" : accesseur en
lecture ("get...") et en ecriture ("set...")
Note 1 : a verifier : je cite de memoire...
Note 2 : n'oubliez pas de definir votre propre namespace (ici, "xmlns:as" ,
qui vous permet,
en outre, de passer des objets COM en parametre a l'ilot de code JavaScript
-
cf. la doc MSXML sur "implements-prefix" pour plus d'infos ;=)
Note 2 : typiquement, msxsl:script un element "top-level" , i.e., enfant de
xsl:stylesheet ;
Note 3 : les ilots de code JavaScript cote transfo XSLT ne sont pas prevus
par XSLT : ce sont en fait des extensions
qui dependent de l'implementation - donc de l'editeur ; bref : PAS portable
(facilement) !
Note 4 : essayez qd meme d'etudier si il n'y a pas une solution "pure" XSLT
1.0 ;=)
(*) J'ai oublie : quel processeur XML / XSLT utilisez-vous a propos ?
(Pour les processeurs Java c'est donc une autre histoire !)
Hope it helps,
Cyril
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|