xsl-list
[Top] [All Lists]

RE: Empty spaces turn to %20

2003-03-28 09:19:51
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



<Prev in Thread] Current Thread [Next in Thread>