| 
 
Subject: RE: [xsl] replace function From: "Stevenson Ngila" <Stevenson@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 1 Oct 2002 09:59:58 +0300  | 
Thanks Michael Kay, i wrote one and it worked perfectly. See it below:
<xsl:template name="stringSpacing">
  <xsl:param name="sString"/>
  <xsl:choose>
    <xsl:when test="contains($sString, ',')">
	<xsl:value-of select="substring-before($sString, ',')"/>, 
	<xsl:call-template name="stringSpacing">
	        <xsl:with-param name="sString" select="substring-after($sString,
',')" />
	 </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="$sString"/>
  </xsl:otherwise>
  </xsl:choose>
</xsl:template>
-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Michael Kay
Sent: 30 September 2002 23:06
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] replace function
e is get a string i.e.
> "steve,john,peter" and replace the next word to a comma  with
> a space hence the new string become "steve, john, peter" how
> can i achieve this using the translate function?
Although people have written solutions to this that you can use
off-the-shelf, it's worth learning how to write the code yourself. You
need a recursive template, it should use substring-before() to output
the string before the first comma, then output ", ", then use
substring-after() and call itself to process the rest of the string
after the first comma.
Any good XSLT textbook will have examples of this.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: [xsl] XML-->HTML-->CHM, Ben Robb | Thread | RE: [xsl] replace function, John Pallister | 
| [xsl] XML-->HTML-->CHM, Satish, L. Gnanendra | Date | RE: [xsl] PDF to FO tool?, DPawson | 
| Month |