[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Replacing strings


Subject: Re: [xsl] Replacing strings
From: Geert Josten <Geert.Josten@xxxxxxxxxxx>
Date: Thu, 24 Nov 2005 09:48:36 +0100

Then only convert the string to lowercase for testing if it contains the
searchstring.

Okay, but you need the translated string because substring needs a "end point".

<xsl:when test="contains($string, $from)">
	Let's assume that string is just converted to lowercase to test

<xsl:value-of select="substring-before($string, $from)" />
	Here you need lowered case string again.

Hmm, true. Awckward but not undoable:


<xsl:when test="contains($lowercasestring, $from)">
  <xsl:variable name="startpos" select="string-length(substring-before($lowercasestring, $from))" />
  <xsl:variable name="endpos" select="$startpos + string-length($from)" />

  <xsl:value-of select="substring($string, 1, $startpos - 1)" />
  <!-- insert replacement -->
  <!-- continue loop with substring($string, $endpos) -->
</xsl:when>

Combine this with the lookup and you have a nice replace function..

Regards,
Geert


Current Thread