Altova Mailing List Archives


Re: [xsl] Transforming double quotes

From: "Darcy Parker" <darcyparker@--------->
To:
Date: 6/23/2008 3:28:00 PM
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.

Disclaimer

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.