Re: [xsl] TOKENISER

Subject: Re: [xsl] TOKENISER
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 27 Feb 2002 14:22:07 +0000
Hi Jinkx,

> i have a variable day defined as
> <xsl:variable name = "day" select="/date"/>
>
> which has a value Tuesday 26 February 2002
>
> can i separate each of them to get
>
> Tuesday
> 26
> February
> 2002
>
> using some kind of string functions in xsl..

There isn't a tokenising function built-in to XPath 1.0. You have
several options, though:

Since you know the format, you can pull out the strings one at a time:

  <xsl:variable name="weekday" select="substring-before($day, ' ')" />
  <xsl:variable name="monthday"
    select="substring-before(substring-after($day, ' '), ' ')" />
  <xsl:variable name="month"
    select="substring-before(
              substring-after(
                substring-after($day, ' '), ' '), ' ')" />
  <xsl:variable name="year"
    select="substring-after(
              substring-after(
                substring-after($day, ' '), ' '), ' ')" />

Or you could write your own (or copy from e.g.
http://www.exslt.org/str/functions/tokenize/str.tokenize.template.xsl)
recursive function to split the string into tokens.

Or you could use an extension function, if your processor has one, to
do this. For example, Saxon has saxon:tokenize() and Xalan has
xalan:tokenize().
                
Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


Current Thread
  • [xsl] TOKENISER
    • Jinkx - 27 Feb 2002 13:45:40 -0000
      • cutlass - Wed, 27 Feb 2002 13:54:24 -0000
      • Jeni Tennison - Wed, 27 Feb 2002 14:22:07 +0000 <=