This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: counting the number of tokens in a string?
- From: "Ben Robb" <Ben at cscape dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 2 Oct 2002 18:05:22 +0100
- Subject: RE: [xsl] counting the number of tokens in a string?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Worse than a newbie question - a question that was only asked 24 hours
ago...
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"
select="normalize-space(ITEM/@cols)"/>
<xsl:with-param name="x" select="'1'"/>
</xsl:call-template>
</xsl:variable>
<xsl:template name="getTotal">
<xsl:param name="s"/>
<xsl:param name="x"/>
<xsl:choose>
<xsl:when test="contains($s, ',')">
<xsl:call-template name="getTotal">
<xsl:with-param name="s"
select="substring-after($s,''')"/>
<xsl:with-param name="x" select="$x +
1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of
select="$x"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
---------------------
Then the total number of items in the cols attribute will be given by:
<xsl:value-of select="$t" />
Rgs,
Ben Robb
-----Original Message-----
From: john liao [mailto:jliao2k@yahoo.com]
Sent: 02 October 2002 17:36
To: XSL-List@lists.mulberrytech.com
Subject: [xsl] counting the number of tokens in a string?
Hi,
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.
Thanks,
J.L.
=====
__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list