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>
XPath 2.0 has a replace() function: replace($x, "%20", " ")
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list