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

RE: Reverse Tokens Template

Subject: RE: Reverse Tokens Template
From: Américo Albuquerque <aalbuquerque@xxxxxxxxxxxxxxxx>
Date: Fri, 16 May 2003 19:13:12 +0100
reverse string word by word
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@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Greene, Stephen
> Sent: Thursday, May 15, 2003 3:39 PM
> To: XSL List (E-mail)
> Subject:  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


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.