RE: [xsl] Empty spaces turn to %20

Subject: RE: [xsl] Empty spaces turn to %20
From: "Martinez, Brian" <brian.martinez@xxxxxxxx>
Date: Fri, 28 Mar 2003 09:19:51 -0700
> From: David Carlisle [mailto:davidc@xxxxxxxxx]
> 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.martinez@xxxxxxxx |
| 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


Current Thread