Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3921 connectés 

 


Dernière réponse
Sujet : [XSL] XSL et caractères spéciaux.
chocoboy t'as essayé de mettre :
 
<script src="mainscript.js" />
 
dans la partie HTML générée de ton XSL : après, dans le fichier mainsccript.js, tu ne te soucies plus de ces problèmes de conversion.
Si tu ne peux pas l'externaliser, voici un exemple contenant des & qui fonctionne dans un XSL :
 

Code :
  1. <script src="mainscript.js" />
  2.   <script language="javascript">
  3.    <![CDATA[
  4.    function forum_open(link_forum, id_entity, title, ellipse_top, ellipse_bottom, rectangle_top, rectangle_bottom, back_color, entity, screen_width)
  5.    {
  6.     var dest='forum_open.html?id_forum='+link_forum+'&id_entity='+id_entity+'&title='+title+'&ellipse_top='+ellipse_top+'&ellipse_bottom='+ellipse_bottom+'&rectangle_top='+rectangle_top+'&rectangle_bottom='+rectangle_bottom+'&back='+back_color+'&entity='+entity+'&screen_width='+screen_width;
  7.     window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=yes, resizable=no, copyhistory=no, width=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-600*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  8.    }
  9.    function popup_open(id_entity, img_path_type, img_src, img_format, img_name, ellipse_top, url_static_jpg, url_static_png, url_photo, screen_width)
  10.    {
  11.     var dest='popup_open.html?id_entity='+id_entity+'&path_type='+img_path_type+'&src='+img_src+'&format='+img_format+'&name='+img_name+'&ellipse_top='+ellipse_top+'&url_static_jpg='+url_static_jpg+'&url_static_png='+url_static_png+'&url_photo='+url_photo+'&screen_width='+screen_width;
  12.     if (img_format=='italian')
  13.     {
  14.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-800*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-600*$screen_height div 1200))div 2" /><![CDATA[" );
  15.     }
  16.     else if (img_format=='french')
  17.     {
  18.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-600*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  19.     }
  20.     else if (img_format=='square')
  21.     {
  22.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-800*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  23.     }
  24.    }
  25.    ]]>
  26.   </script>


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
chocoboy t'as essayé de mettre :
 
<script src="mainscript.js" />
 
dans la partie HTML générée de ton XSL : après, dans le fichier mainsccript.js, tu ne te soucies plus de ces problèmes de conversion.
Si tu ne peux pas l'externaliser, voici un exemple contenant des & qui fonctionne dans un XSL :
 

Code :
  1. <script src="mainscript.js" />
  2.   <script language="javascript">
  3.    <![CDATA[
  4.    function forum_open(link_forum, id_entity, title, ellipse_top, ellipse_bottom, rectangle_top, rectangle_bottom, back_color, entity, screen_width)
  5.    {
  6.     var dest='forum_open.html?id_forum='+link_forum+'&id_entity='+id_entity+'&title='+title+'&ellipse_top='+ellipse_top+'&ellipse_bottom='+ellipse_bottom+'&rectangle_top='+rectangle_top+'&rectangle_bottom='+rectangle_bottom+'&back='+back_color+'&entity='+entity+'&screen_width='+screen_width;
  7.     window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=yes, resizable=no, copyhistory=no, width=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-600*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  8.    }
  9.    function popup_open(id_entity, img_path_type, img_src, img_format, img_name, ellipse_top, url_static_jpg, url_static_png, url_photo, screen_width)
  10.    {
  11.     var dest='popup_open.html?id_entity='+id_entity+'&path_type='+img_path_type+'&src='+img_src+'&format='+img_format+'&name='+img_name+'&ellipse_top='+ellipse_top+'&url_static_jpg='+url_static_jpg+'&url_static_png='+url_static_png+'&url_photo='+url_photo+'&screen_width='+screen_width;
  12.     if (img_format=='italian')
  13.     {
  14.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-800*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-600*$screen_height div 1200))div 2" /><![CDATA[" );
  15.     }
  16.     else if (img_format=='french')
  17.     {
  18.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="600*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-600*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  19.     }
  20.     else if (img_format=='square')
  21.     {
  22.      window.open(dest, "", "toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no, width=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, height=]]><xsl:value-of select="800*$screen_width div 1600" /><![CDATA[, left=]]><xsl:value-of select="($screen_width+(-800*$screen_width div 1600))div 2" /><![CDATA[, top=]]><xsl:value-of select="($screen_height+(-800*$screen_height div 1200))div 2" /><![CDATA[" );
  23.     }
  24.    }
  25.    ]]>
  26.   </script>

Leg9 Ah si, le CDATA nous nous en servons pour faire du "xsl script", du brave js que l'on appelle ensuite ailleurs dans le xsl avec un <xsl:eval>nom_de_la_fonction()</xsl:eval>
Leg9

chocoboy a écrit a écrit :

En plus, tu peux effectuer un "disable-output-escaping" global pour un certain type de noeud que tu définis (avec xsl:output je crois, je suis pas sur, j'ai pas mon bouquin XSL de Michael Kay sous la main...)
Sinon, concernant les scripts, si tu a une grande série de caractères spéciaux, tu peux utiliser un CDATA, ca marche aussi (utile pour les javascripts générés par le XML...)




Tu pourrais m'en dire plus stp? :)
 
Quand au Kay, on a un pb de "namespace" (je ne sais même pas exactement à quoi ça correspond :/) qui fait que beaucoup de choses ne marche pas tout à fait dans ce bouquin comme chez nous. :(

chocoboy En plus, tu peux effectuer un "disable-output-escaping" global pour un certain type de noeud que tu définis (avec xsl:output je crois, je suis pas sur, j'ai pas mon bouquin XSL de Michael Kay sous la main...)
Sinon, concernant les scripts, si tu a une grande série de caractères spéciaux, tu peux utiliser un CDATA, ca marche aussi (utile pour les javascripts générés par le XML...)
chocoboy

Leg9 a écrit a écrit :

Argh...
Je vais craquer...
 
Dans mon XSL je met un javascript, dans lequel j'ai besoin de construire une ligne d'url asp, avec comme paramètre des <xsl:value-of-select>...
 
Mais impossible de se servir d'un "&" correctement.
 
Ce genre de choses :

Code :
  1. function test()
  2. {
  3. sortie = "& # 038";
  4. alert(sortie);
  5. }


me recrache "&" et pas juste "&"...
Remplacer le "& # 038;" par "&" donne le même résultat.
Et évidemment mettre sortie = "&";, ne marche pas! [:kiki]  
 
Quelqu'un voit? :/




 
Si tu insères du javascript dans ton XSL tu vas devoir faire gaffe à tous les caractères sépciaux du type & et <...
tu peux le faire, mais c'est galère : il vaut mieux mettre ton javascript dans un fichier externe et simplement faire un link vers ce fichier depuis ton XSL !

Leg9 Ok, merci :cry:
gm_superstar Je connais pas ASP mais ça me paraît bizarre que tu mettes des guillemets (" ) dans tes URLs...
 
Edit: je viens de relire.... effectivement si tu crées tes URLs avec JavaScript ce que tu décris est peut être normal :/
lorill

Leg9 a écrit a écrit :

 

Code :
  1. test.asp?param0="bla"&param1="bli"&param2="blu"






 
ben c'est ton navigateur qui doit transformer les & en &, donc ta page asp recoit exactement la meme chose  [:sinclaire]

Leg9 Hum... asp n'a pas l'air d'apprécier le &... :heink:
 
Ceci :  

Code :
  1. param0 = Request.QueryString("param0" )
  2. param1 = Request.QueryString("param1" )
  3. param2 = Request.QueryString("param2" )


dans l'asp ne me renvoie que le param0 lorsque j'arrive avec une url :

Code :
  1. test.asp?param0="bla"&param1="bli"&param2="blu"


 
:(

Leg9

gm_superstar a écrit a écrit :

Vi : http://monsite.com/?param1=plop&pa [...] param3=pan
 
Le navigateur se débrouille très bien avec ça.




Ok, mon problème est ailleurs alors! :D
 
Merci beaucoup. ;)

gm_superstar Vi : http://monsite.com/?param1=plop&pa [...] param3=pan
 
Le navigateur se débrouille très bien avec ça.
Leg9 Comme séparateur de paramêtres asp? :)
 
Parce que là ça n'a pas l'air du tout de marcher. :/
gm_superstar Cela dit, tu as tout à fait le droit de laisser & dans les URLs (c'est d'ailleurs obligatoire pour la validation en XHTML)
Leg9 Argh...
Je vais craquer...
 
Dans mon XSL je met un javascript, dans lequel j'ai besoin de construire une ligne d'url asp, avec comme paramètre des <xsl:value-of-select>...
 
Mais impossible de se servir d'un "&" correctement.
 
Ce genre de choses :

Code :
  1. function test()
  2. {
  3. sortie = "& # 038";
  4. alert(sortie);
  5. }


me recrache "&" et pas juste "&"...
Remplacer le "& # 038;" par "&" donne le même résultat.
Et évidemment mettre sortie = "&";, ne marche pas! [:kiki]  
 
Quelqu'un voit? :/

Leg9

tomiotomio a écrit a écrit :

Code :
  1. <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>






Ca marche ça? :eek:

dropsy

& # 3 8 ;


 
en enlevant les espaces ;)
 
Dropsy

Leg9 Salut à tous.
 
Quelqu'un saurait il que taper pour faire afficher à XSL un simple "&" (qui est bien pratique pour passer des paramètres à une page ASP tout de même! :D)?
 
Merci. :)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)