RE: [xsl] question about javascript in XSL

Subject: RE: [xsl] question about javascript in XSL
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 25 Aug 2006 09:27:23 +0100
It sounds as if your code has been written to depend on the well known MSXML
"bug" whereby whitespace is stripped from source documents without you asking
for it. You haven't shown your source document so it's hard to tell; but I
would guess that either <xsl:strip-space elements=*"/> to force this
whitespace stripping, or select="normalize-space(SOMETHING)", would do the
trick.

Incidentally,

(a) it's a good idea to put literal text in the stylesheet inside <xsl:text>
elements, to get better control over formatting of the output

(b) putting text in CDATA makes no difference to anything unless the text
contains < or & characters that would otherwise need to be escaped.

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


> -----Original Message-----
> From: shi wudao [mailto:shiwudao@xxxxxxxxxxx]
> Sent: 25 August 2006 09:09
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] question about javascript in XSL
>
> HI, all
> I have a question as follow:
> requirements:
>   use XSL read value(string ) from xml, then display it in HTML.
>   and add a link on the string to call a CGI program with the string.
>
> I wrote it as:
> <?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet
> version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";><xsl:template
>  match="/"> ......
>   <script language="javascript">
>          <![CDATA[
>            var infoname = ']]><xsl:value-of
> select="SOMETHING"/><![CDATA[';
>            document.write("<a href=\"display?"+ infoname +"\"
> target=\"_blank\">" + infoname + "</a>");
>          ]]>
>          </script>[/color]
> ......
>
> It works fine in IE, but in Mozilla, in the statement"var
> infoname =", the section of  CDATA has changed into a new
> line, so failed in Mozilla.
> the correct HTML should be
>     var infoname = 'XXXX';
>
> but now it looks like
>     var infoname = '
> XXXX
> ';
>
> So how can I fix this problem or there is any other better
> solution for the requirement?
> Thanks a lot.
>
> _________________________________________________________________
> e
h49d8h== MSN Explorer:   http://explorer.msn.com/lccn/

Current Thread