xsl-list
[Top] [All Lists]

Re: [xsl] Transforming double quotes

2008-06-23 08:28:27
Hi Aaron,

You need to escape your quotes.  Michael Kay and others have answered
questions about escaping quotes before... For example:
http://www.biglist.com/lists/xsl-list/archives/200604/msg00460.html

With regards to your script... I am not sure how you formatted the
CDATA... but the following is what most people do:

<script type="text/javascript">
//<![CDATA[

//]]>
</script>



On Mon, Jun 23, 2008 at 11:15 AM, Aaron Johnson <artpunx(_at_)gmail(_dot_)com> 
wrote:
Hi!

I am having a problem passing double quotes. I am trying to output
some javascript inside a template, when the template is transformed
the double quotes come through as &quot; in the resulting html.

Here is the template...

<xsl:template name="analytics">
       <xsl:param name="virtualPage">
               <!--Focused primary tab-->
               <xsl:text>/</xsl:text>
               <xsl:value-of select="//focusedTab/@name"/>
               <xsl:if test="count(//folder) &gt; 1">
                       <!--Focused sub tab-->
                       <xsl:text>/</xsl:text>
                       <xsl:value-of
select="//layout/subtabs/folder/folder[(_at_)isFocused='true']/@name"/>
               </xsl:if>
               <xsl:if test="//focusedContent">
                       <!--Maximised channel-->
                       <xsl:text>/</xsl:text>
                       <xsl:value-of select="//focusedContent/channel/@name"/>
               </xsl:if>
               <xsl:text>.htm</xsl:text>
       </xsl:param>
       <script type="text/JavaScript">
               var gaJsHost = (("https:" == document.location.protocol) ?
"https://ssl."; : "http://www.";);
               document.write(unescape("%3Cscript src='" + gaJsHost +
"google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"));
       </script>
       <script type="text/javascript">
               var pageTracker = _gat._getTracker("UA-554771-3");
               pageTracker._initData();
               pageTracker._trackPageview("<xsl:value-of 
select="$virtualPage"/>");
       </script>
       </xsl:template>

Here is a smaple of the result...

var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ?
&quot; ....etc etc

I have tried adding a CDATA wrapping element as well as coding the
quotes as numeric entities and putting the whole thing in xsl:text
elements with an added escaping output attribute.....all unsuccessful.

Can anyone point me in the right direction?

Thanks in advance!

Aaron.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--