Subject: RE: Transforming double quotes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 23 Jun 2008 17:48:10 +0100
|
> You need to escape your quotes.
In the stylesheet, as in any XML document, the following are 100%
equivalent:
<x>"</x>
<x>"</x>
<x><![CDATA["]]></x>
Therefore please do not imagine that using one of these input forms in
preference to another will affect the output of the stylesheet in any way.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Darcy Parker [mailto:darcyparker@xxxxxxxxx]
> Sent: 23 June 2008 16:27
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Transforming double quotes
>
> 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 " 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) > 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 = (("https:" == document.location.protocol) ?
> > " ....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.
|