EXSLT - str:tokenize

Implementer Page: str.tokenize.html
Function Package: str.tokenize.zip

Function Syntax

node-set str:tokenize(string, string?)

Template Syntax

<xsl:call-template name="str:tokenize"> <xsl:with-param name="string" select="string" /> <xsl:with-param name="delimiters" select="string" />? </xsl:call-template>

The str:tokenize function splits up a string and returns a node set of token elements, each containing one token from the string.

The first argument is the string to be tokenized. The second argument is a string consisting of a number of characters. Each character in this string is taken as a delimiting character. The string given by the first argument is split at any occurrence of any of these characters. For example:

 str:tokenize('2001-06-03T11:40:23', '-T:') 

Gives the node set consisting of:

 <token>2001</token> <token>06</token> <token>03</token> <token>11</token> <token>40</token> <token>23</token> 

If the second argument is omitted, the default is the string '&#x9;&#xA;&#xD;&#x20;' (i.e. whitespace characters). Thus:

 str:tokenize('date math str') 

Gives the node set consisting of:

 <token>date</token> <token>math</token> <token>str</token> 

If the second argument is an empty string, the function returns a set of token elements, each of which holds a single character. Thus:

 str:tokenize('foo', '') 

Gives the node set consisting of:

 <token>f</token> <token>o</token> <token>o</token> 

The template version of this function returns a result tree fragment consisting of a number of token elements.

Implementations

The following XSLT processors support str:tokenize:

Implementations of str:tokenize are available in the following languages:

Examples

Function

The following example shows how to use the str:tokenize function:

Source

<a> <c>Is this EXSLT? No. no</c> </a>

Stylesheet

<xsl:template match="a"> <xsl:apply-templates /> </xsl:template> <xsl:template match="*"> <xsl:value-of select="." /> - <xsl:value-of select="str:tokenize(string(.), ' ')" /> <xsl:value-of select="str:tokenize(string(.), '')" /> <xsl:for-each select="str:tokenize(string(.), ' ')"> <xsl:value-of select="." /> </xsl:for-each> <xsl:apply-templates select="*" /> </xsl:template>

http://www.exslt.org/str/functions/tokenize/index.html last modified 2002-11-12