xsl-list
[Top] [All Lists]

RE: Reverse Tokens Template

2003-05-16 11:13:12
Hi.
Try this template:

 <xsl:template name="reverse">
  <xsl:param name="str" select="string(.)"/>
  <xsl:param name="res" select="''"/>
  <xsl:param name="sep" select="''"/>
  <xsl:choose>
   <xsl:when test="contains($str,' ')">
    <xsl:call-template name="reverse">
     <xsl:with-param name="str" select="substring-after($str,' ')"/>
     <xsl:with-param name="sep" select="' '"/>
     <xsl:with-param name="res" select="concat(substring-before($str,'
'),$sep,$res)"/>
    </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
   <xsl:value-of select="concat($str,$sep,$res)"/>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

It recursively breaks the string on the space char and concat each peace
backwardly.

Hope that this helps you

  Américo Albuquerque



-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Greene, Stephen
Sent: Thursday, May 15, 2003 3:39 PM
To: XSL List (E-mail)
Subject: [xsl] Reverse Tokens Template


Hi,
 
I have been trying to modify (un-sucessfully) Dimitre 
Novatchev's template to reverse the order of "words" in a 
string (words being character substrings seperated by a space 
character). Such that the string "hello world" would become 
"world hello". I was wondering if anyone would be able to 
offer any hints on how to accomplish this.
 
I have tried modifying the template but as the word length is 
variable, (and the words need to go back into a string, and 
not be output) I have been unsuccessful in concatenating the 
string after removing one word at a time.
 
If this is not possible, is there a way in which I could 
remove one word at a time from the end of the string? (in a 
substring-before($theString, ' ') like way) Instead of the beginning?
 
I thank you for your time and for your help,
 
Regards,
 
Stephen Greene
 
National Research Council of Canada

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





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



<Prev in Thread] Current Thread [Next in Thread>