[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Transforming double quotes


Subject: Re: [xsl] Transforming double quotes
From: "Darcy Parker" <darcyparker@xxxxxxxxx>
Date: Mon, 23 Jun 2008 11:27:28 -0400

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@xxxxxxxxx> 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[@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.


Current Thread