xsl-list
[Top] [All Lists]

Re: [xsl] ESCAPE SINGLE QUOTES FOR JAVASCRIPT PARAMETER IN XSLT

2008-06-06 16:36:20
Hi Martin,

Many thanks for your reply.

I use XSLT 1.0. So the function you provided will not work for me.

Is there any similar trick in XSLT 1.0?

Cheers

Claudio

------------
Date: Thu, 05 Jun 2008 13:52:40 +0200
To:  xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
From: Martin Honnen <Martin(_dot_)Honnen(_at_)gmx(_dot_)de>
Subject: Re: [xsl] ESCAPE SINGLE QUOTES FOR JAVASCRIPT PARAMETER IN XSLT
Message-ID: <4847D388(_dot_)4040900(_at_)gmx(_dot_)de>

Cleyton Jordan wrote:

<A AR="I Don't Watch It" AID="768564" APID="76158" AC="5"/>

As you can see the value of the @AR attribute has a single quote. This is 
causing me a lot of problems when I use xslt to call a javascript function 
passing the parameters. 

I was wondering if someone could help me to find a solution for that.

Do you use XSLT 2.0 or 1.0?

-- 

    Martin Honnen
    http://JavaScript.FAQTs.com/

------------------------------

Date: Thu, 05 Jun 2008 17:45:31 +0200
To:  xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
From: Martin Honnen <Martin(_dot_)Honnen(_at_)gmx(_dot_)de>
Subject: Re: [xsl] ESCAPE SINGLE QUOTES FOR JAVASCRIPT PARAMETER IN XSLT
Message-ID: <48480A1B(_dot_)7070305(_at_)gmx(_dot_)de>

Cleyton Jordan wrote:

<A AR="I Don't Watch It" AID="768564" APID="76158" AC="5"/>

As you can see the value of the @AR attribute has a single quote. This is 
causing me a lot of problems when I use xslt to call a javascript function 
passing the parameters. 

I was wondering if someone could help me to find a solution for that.

Here is an XSLT 2.0 function that escapes four characters as needed for 
JavaScript string literals:

   <xsl:function name="my:escape" as="xs:string">
     <xsl:param name="s" as="xs:string"/>
     <xsl:sequence
       select="replace(
                 replace(
                   replace(
                     replace($s, &quot;'&quot;, &quot;\\'&quot;),
                     '&quot;',
                     '\\&quot;'
                   ),
                   '\r',
                   '\\r'
                 ),
                 '\n',
                 '\\n'
               )"/>
   </xsl:function>

You can the use it as e.g.
   '<xsl:value-of select="my:escape(@AR)"/>'

-- 

    Martin Honnen
    http://JavaScript.FAQTs.com/

------------------------------



      __________________________________________________________
Sent from Yahoo! Mail.
A Smarter Email http://uk.docs.yahoo.com/nowyoucan.html

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