Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Une balise <img> dans un tag XML non interprété après transformation avec xsl.

[xml-tech] Une balise <img> dans un tag XML non interprété après transformation avec xsl.

Auteur: MATHIEU Sylvère <sylvere.mathieu@-------.--->
Date: 22/09/2005 - 09:45

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 &lt; 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 img.

Mais alors, comment faire pour que les caractères < et > ne soit pas changés en &lt; 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)
Received on Thu Sep 22 11:45:37 2005

Archive générée par hypermail 2.1.8 le 18/10/2005 - 08:12 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement