Re: [xsl] Replacing the space character with another character

Subject: Re: [xsl] Replacing the space character with another character
From: "Manfred Staudinger" <manfred.staudinger@xxxxxxxxx>
Date: Sun, 13 May 2007 20:26:09 +0200
Hi Mark,

what processor are you using ?
If I run your example with Saxon (both 6.5.5 or 8.9.0.3J) I get
<indexterm>Greek&amp;History</indexterm>

When I replace translate(.,'&#x20;','&#x26;') by translate(.,' ','*')
I get what you asked for.

Regards, Manfred

On 13/05/07, Mark Peters <flickrmeister@xxxxxxxxx> wrote:
Hi,

I'm trying to replace the space character with another character (I've
chosen the asterisk, but it could be anything) in a specific element's text
contents. I've read the Replace and String Replace pages on Dave Pawson's
site, and have read about the translate XPath function, but am still coming
up empty (literally!).


In my input XML, I have a number of <indexterm> elements such as the following:

<indexterm>Greek History</indexterm>


I'd like to replace the space character as follows:


<indexterm>Greek*History</indexterm>


My stylesheet contains the following template:


 <xsl:template match="indexterm">
     <indexterm>
        <xsl:value-of select="translate(.,'&#x20;','&#x26;')"/>
     </indexterm>
 </xsl:template>


For some reason, the stylesheet removes the spaces, rather than replacing them with the asterisk:

<indexterm>GreekHistory</indexterm>


What am I doing wrong?


Thanks,
Mark

Current Thread