2010-11-30 4 views
0

J'ai besoin de générer des balises XSL entre les balises de script pour générer dynamiquement des valeurs dans JavaScript.XSL dans les balises de script

Voici le code, mais je n'arrive pas à le faire fonctionner. Je veux ajouter le position() dans le script afin qu'il sorte quelque chose comme o.write("flash1"); et incrémente le nombre par chaque fichier flash incorporé. Toute aide appréciée.

<div> 
    <xsl:attribute name="id">iframe-content<xsl:value-of select="position()"/></xsl:attribute> 
    <div id="flash"></div><!--/flash--> 
    <script type="text/javascript"> 
    // <![CDATA[ 
    var so = new SWFObject("swf/video2.swf", "showreel", "720", "484", "8", "#ffffff"); 
    so.addParam("quality", "high"); 
    so.addParam("allowScriptAccess", "always"); 
    so.addParam("wmode", "transparent"); 
    so.addVariable("videoURL", "http://www.masterseries.co.uk/public/TempFiles/Concrete1.flv"); 
    so.write("flash"); 
    // ]]> 
    </script> 
</div> 

Répondre

0

Vous étiez près (vous ne pouvez pas utiliser facilement CDATA la façon dont vous avez fait):

<!-- note that you don't need xsl:attribute here --> 
<div id="iframe-content-{position()}"> 
    <div id="flash"></div><!--/flash--> 
    <script type="text/javascript"> 
    var so = new SWFObject("swf/video2.swf", "showreel", "720", "484", "8", "#ffffff"); 
    so.addParam("quality", "high"); 
    so.addParam("allowScriptAccess", "always"); 
    so.addParam("wmode", "transparent"); 
    so.addVariable("videoURL", "http://www.masterseries.co.uk/public/TempFiles/Concrete1.flv"); 
    so.write("flash<xsl:value-of select='position()' />"); 
    </script> 
</div> 

Vous pouvez utiliser

<xsl:output cdata-section-elements="script"/> 

pour créer des sections CDATA dans la sortie. Toutefois, vous devez vous assurer que la source de script d'entrée est correctement codée en XML, c'est-à-dire ne doit pas contenir les caractères <, &, >, mais leurs équivalents &lt;, &amp;, &gt;.

+0

C'est fantastique. Cela me dérange depuis des lustres. Très appréciée! –

+0

@Tomalak: Cela semble une bonne réponse, mais n'y en a-t-il pas aussi beaucoup de citations imbriquées dans 'so.write'? –

+0

+1 Bonne réponse. –

Questions connexes