[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

general substring replacement (was Re: ENCODING QUESTION?)

Subject: general substring replacement (was Re: ENCODING QUESTION?)
From: Mike Brown <mike@xxxxxxxx>
Date: Fri, 9 Jun 2000 19:46:23 -0600 (MDT)
xsl substring replacement
> I am getting a String somehow which contains %20 or space characters.
> like 'This%20is%20Test' and I want to convert it to 'This is Test'

General purpose substring replacement should be in the FAQ, but I couldn't
find it. The closest I found was an answer by Michael Kay to a similar
question, and which I just posted a modified version of yesterday for
someone else. Here is yet another version.

  <!-- pretend this is in a template -->
  <xsl:variable name="myString" select="'This%20is%20Test'"/>
  <xsl:variable name="myNewString">
    <xsl:call-template name="replaceCharsInString">
      <xsl:with-param name="stringIn" select="string($myString)"/>
      <xsl:with-param name="charsIn" select="'%20'"/>
      <xsl:with-param name="charsOut" select="' '"/>
    </xsl:call-template>
  </xsl:variable>
  <!-- $myNewString is a result tree fragment, which should be OK. -->
  <!-- If you really need a string object, do this: -->
  <xsl:variable name="myNewRealString" select="string($myNewString)"/>

<!-- here is the template that does the replacement -->
<xsl:template name="replaceCharsInString">
  <xsl:param name="stringIn"/>
  <xsl:param name="charsIn"/>
  <xsl:param name="charsOut"/>
  <xsl:choose>
    <xsl:when test="contains($stringIn,$charsIn)">
      <xsl:value-of select="concat(substring-before($stringIn,$charsIn),$charsOut)"/>
      <xsl:call-template name="replaceCharsInString">
        <xsl:with-param name="stringIn" select="substring-after($stringIn,$charsIn)"/>
        <xsl:with-param name="charsIn" select="$charsIn"/>
        <xsl:with-param name="charsOut" select="$charsOut"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$stringIn"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

   - Mike
____________________________________________________________________
Mike J. Brown, software engineer at         My XML/XSL resources:
webb.net in Denver, Colorado, USA           http://www.skew.org/xml/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.