xsl-list
[Top] [All Lists]

RE: [xsl] Transforming double quotes

2008-06-23 09:49:28
XSLT 2.0 makes it clear that the HTML serialization method is not supposed
to do this.

XSLT 1.0 leaves such decisions rather more to the discretion of the
implementor. If your product is doing this, I can't think of any way of
preventing it.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Aaron Johnson [mailto:artpunx(_at_)gmail(_dot_)com] 
Sent: 23 June 2008 16:16
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Transforming double quotes

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) &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>
--~--

<Prev in Thread] Current Thread [Next in Thread>