This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: adding string-length values
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: adding string-length values
- From: Kay Michael <Michael dot Kay at icl dot com>
- Date: Mon, 20 Nov 2000 18:50:09 -0000
- Reply-To: xsl-list at mulberrytech dot com
> <xsl:variable name="mycounter" select="0"/>
>
> <xsl:for-each select="//Para">
> <xsl:variable name="mycounter" select="$mycounter +
> string-length(.)"/>
> <p>Number Chars: <xsl:value-of select="$mycounter"/></p>
> </xsl:for-each>
You've got to stop thinking in terms of updating variables as you go along,
and thing in terms of a function.
With Saxon it's easy,
saxon:sum(preceding::text(), saxon:expression('string-length(.)');
With standard XSLT it's a bit more work: you need a recursive template that
calculates the total string-length of a node-set by finding the
strgin-length of the first node, and adding the total of the remaining
nodes, which you get by calling yourself recursively.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list