RE: [xsl] counting the number of tokens in a string?

Subject: RE: [xsl] counting the number of tokens in a string?
From: "Ben Robb" <Ben@xxxxxxxxxx>
Date: Wed, 2 Oct 2002 18:05:22 +0100
Worse than a newbie question - a question that was only asked 24 hours

Mike Kay's response:
"Your first job is to tokenize this. Some processors (and EXSLT) have an
xx:tokenize() extension function that makes this easy; the only other
way is to use a recursive template (which isn't very difficult). Let's
say you end up with a variable $colours containing a node-set in which
there are four elements whose string values are blue, red, etc,"

My response:
If you aren't using a processor which supports tokenize() then use the
recursive method:


<xsl:variable name="t">
	<xsl:call-template name="getTotal">
		<xsl:with-param name="s"
		<xsl:with-param name="x" select="'1'"/>

<xsl:template name="getTotal">
	<xsl:param name="s"/>
	<xsl:param name="x"/>
		<xsl:when test="contains($s, ',')">
			<xsl:call-template name="getTotal">
				<xsl:with-param name="s"
				<xsl:with-param name="x" select="$x +


Then the total number of items in the cols attribute will be given by:

<xsl:value-of select="$t" />


Ben Robb

-----Original Message-----
From: john liao [mailto:jliao2k@xxxxxxxxx] 
Sent: 02 October 2002 17:36
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] counting the number of tokens in a string?


another newbie question. Is there an easy way to count
the number of commas in a string? Like this:

<ITEM cols="col1,col2,col3,col4"/>

I would like to print 4 for the number of columns in
my ITEM. I searched on tokenize() but most of the
references are about the existence of it.




Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!

 XSL-List info and archive:

 XSL-List info and archive:

Current Thread