bonjour afin d empecher le remplacement des caractères spéciaux html
il faudra ecrire dans le template
<xsl:value-of select="MonTag" disable-output-escaping="yes">
Sébastien TISCAR ASTASIO
Sofréavia
Tel : +(33 0) 1-41-23-46-74
Cel : +(33 0) 6-99-16-65-11
e-mail: tiscars@sofreavia.fr
http://www.sofreavia.com
----- Original Message -----
From: "MATHIEU Sylvère" <sylvere.mathieu@-------.--->
To: <xml-tech@xmlfr.org>
Sent: Thursday, September 22, 2005 10:45 AM
Subject: [xml-tech] Une balise <img> dans un tag XML non interprété après
transformation avec xsl.
Bonjour,
Alors, le contexte est le suivant :
J'ai un fichier XSL qui sert de template pour des pages html et dans ces
pages html je veux afficher une image, dont l'url est variable.
Mes fichier XSL qui servent de template, sont générés à partir de fichiers
HTML contenants des balises spéciales qui sont changées, grâce à un autre
XSL( qu'on appellera XSLT car c'est lui qui fait le Transform) qui reconnaît
ces balises, en balise <xsl:value-of select="..." /> dans le fichier XSL et
qui pourront à leur tour récupérer des valeurs dans des bean JAVA
transformés pour ce faire en fichier XML simples.
Schématiquement, ça donne :
D'un coté, j'ai :
HTML + XSL(XSLT) --> XSL(Template)
D'un autre coté, j'ai :
Bean JAVA --> XML (avec juste des tag correspondant aux attributs de mon
bean)
Et pour générer ma page HTML :
XSL(template généré) + XML(du bean correspondant) --> HTML
Le problème rencontré :
Je ne peux pas mettre la balise <img src= «[ma variable]» > directement
dans le XSL(XSLT) ni dans le HTML(celui de départ) car comme la variable est
de type : <xsl:value-of select="/ProductBean/imageUrl" />, au moment de la
génération du fichier XSL(Template), j'ai une erreur comme quoi j'ai pas le
droit de mettre de balises <> dans la partie src= « ».
J'ai essayé de passer ma fonction qui récupère la valeur de mon url dans une
variable tampon dans le XSL(XSLT) qui elle pouvait être mise dans le src=
«». La fonction est la suivante :
<xsl:template match="imageUrl">
<xsl:element name = "xsl:value-of">
<xsl:attribute
name="select">/ProductBean/imageUrl</xsl:attribute>
</xsl:element>
</xsl:template>
Mais la valeur récupérée par cette fonction ne s'affectait pas à la variable
tampon. Donc ne passait pas à la balise <img>.
J'ai donc décidé de construire ma balise <img> directement dans la variable
de mon bean Java (à l'appel de l'action java qui récupère la valeur de
l'url. Donc au lieu d'avoir à afficher juste l'url de l'image dans la
balise, j'ai directement ma balise dans ma chaîne de caractère, ce qui règle
le problème des caractères <> dans le src= «»).
Cette chaîne de caractère qui contient le texte de ma balise (complète) est
contenue dans un bean JAVA sous la forme : String imageTag = « <img src=
monUrl.jpg »></img> » , et j'ai juste à l'appeler avec une variable de type
: xsl:value-of select="/ProductBean/imageTag" /> dans mon XSL lors de la
génération de la page HTML.
Et là un autre problème se pose :
Lorsque je convertis les champs de mon bean dans un fichier XML grâce à une
fonction automatique, ma variable imageTag devient :
<imageTag><![CDATA[<img
src="/gempsyupload/images/jambon.jpg"></img>]]></imageTag>
Il est normal que ma balise <img> soit entouré par ![CDATA[ car XML
n'apprécierait pas une balise qu'il ne pourrait pas interpréter (ici la
balise <img>).
Et le problème survient lors de la génération de la page HTML à partir du
XSLet du XML, car les caractères < et > de ma chaîne de caractère sont
transformés en < et &glt; ce qui fait que ma balise image n'est plus
interprété par HTML. Donc toujours pas d'image à l'affichage, mais juste :
<img src="/monUrl.jpg "></img>
Maintenant les différents problèmes exposés, la question :
Je suis quasiment obligé de contourner le problème qui empêche de mettre des
<> dans le src= «» par cette chaîne de caractère qui contient tout mon tag i
mg.
Mais alors, comment faire pour que les caractères < et > ne soit pas changés
en < et &glt; et puisse être interprétés dans la page HTML.
A moins que vous ayez une autre solution pour passer ma variable dans
l'attribut src de la balise image.
Merci d'avance
Cordialement,
Sylvère MATHIEU
--
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)
Received on Thu Sep 22 11:52:14 2005