Re: [xsl] Escaping curly braces in an attribute

Subject: Re: [xsl] Escaping curly braces in an attribute
From: "Charles White" <chuck@xxxxxxxxxxx>
Date: Mon, 16 Jun 2003 16:28:28 -0700
Well, I'm not sure it's a more elegant solution that just writing out the
attribute element, but you could do this:

<xsl:variable name="leftbrace"><![CDATA[{]]></xsl:variable>

and one for the right side (would you even need one for the right side? --
I'm thinking no but I didn't test it).

And use that value in an atv along with your literal values.

Chuck White
Author, Mastering XSLT, Sybex Books
http://www.javertising.com/webtech
http://www.tumeric.net


> What do you do when you need to use curly braces and *don't* want the
> processor to treat them as an attribute value template?
>
> Consider:
>
> <a href="#" onclick="if (foo == false) {bar = true; alert('ding');} return
> false">Don't click me</a>
>
> If foo == false, the browser should execute the next two statements.  But
> the XSLT processor (rightly) sees this as an AVT and attempts to evaluate
it
> as an expression, with predictably dire results.
>
> A workaround is to write the onclick handler with xsl:attribute:
>
> <xsl:attribute name="onclick">if (foo == false) {bar = true;
alert('ding');}
> return false</xsl:attribute>
>
> but I wanted to know if there was any way to escape the curly braces
> directly in the attribute.
>
> thanks,
> b.
>
> | brian martinez                           brian.martinez@xxxxxxxxxxx |
> | lead gui programmer                                    303.357.3548 |
> | cheap tickets, part of trip network                fax 303.357.3380 |
> | 6560 greenwood plaza blvd., suite 400           englewood, co 80111 |
> | cendant travel distribution services   http://www.cheaptickets.com/ |
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread