[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: [Fwd: %20 in href attribute]

Subject: RE: [Fwd: %20 in href attribute]
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Wed, 30 Jan 2002 18:48:25 -0000
escaping javascript xslt
> When use a variable with string value, which contains spaces
> after the
> #, as the value of href attribute to the <a> tag, the transformer
> automatically replaces the spaces with %20 and causes the link not
> recognize the anchor in the targeting page.  Is there a work
> around for
> that?  Sample code as follow:
>
> <xsl:variable name="url" select="$urlink/@url"/>
> <a href="{$url}" target="ext_link" onclick="new_win()"><xsl:value-of
> select="$title"/></a>
>
> href value desired:
> http://www.state.ma.us/dhcd/components/dns/HtOHA.htm#About
> Our Programs
> what I got:
> http://www.state.ma.us/dhcd/components/dns/HtOHA.htm#About%20O
> ur%20Programs
>
This is a tricky one. The XSLT spec says that the whole URI reference should
be escaped, which is what is happening. XSLT 1.0 doesn't say that the "name"
attribute of the <a> element should be escaped, although HTML 4.0 recommends
this. But it's worse than that: in XHTML the name attribute is replaced with
an id attribute, and the id attribute is of type ID, which means it must be
an NCName, which means it cannot be URI-escaped, because it cannot contain a
"%" character.

The best workaround is to only use NCName values, containing ASCII
characters only, as your fragment identifiers. I know that's not very
satisfactory.

XSLT 2.0 provides an option to disable escaping of URI values in HTML
output. We're currently trying to define a function that would allow you to
do the escaping by hand. This would give you finer control, e.g. you could
avoid escaping the fragment identifier, and you could avoid escaping
javascript: URLs, which is another case that often causes problems.

Mike Kay


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.