From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk]
Sent: Friday, March 28, 2003 8:54 AM
Subject: Re: [xsl] Empty spaces turn to %20
Use the translate() function:
<xsl:value-of select="translate(text(),'%20',' ')"/>
That will translate "%20" to " " which does meet the stated
specification,
but it will also translate % to space, and remove every 2 and every 0
from the input string, which probably isn't wanted.
Eh, my bad--I was trying to use translate() as a string replacement
function.
This will get easier in XSLT 2.0, right? Something like:
<xsl:analyze-string select="text()" regex="%20">
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
<xsl:matching-substring>
<xsl:text> </xsl:text>
<xsl:matching-substring>
</xsl:analyze-string>
A bit unwieldy for a string replacement construct (unless I'm missing a
shorthand way of doing this), but I'll take it, particularly when I have no
control over the source XML.
cheers,
b.
| brian martinez
brian(_dot_)martinez(_at_)trip(_dot_)com |
| lead gui programmer 303.708.7248 |
| trip network, inc. fax 303.790.9350 |
| 6436 s. racine cir. englewood, co 80111 |
| http://www.cheaptickets.com/ http://www.trip.com/ |
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list