Re: adding string-length values

Subject: Re: adding string-length values
From: Zeljko Rajic <Zeljko.Rajic@xxxxxxxxxx>
Date: Tue, 21 Nov 2000 14:13:24 +0100
Kay Michael wrote:
> 
> > <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.

Seems to be a little bit like Lisp or Prolog...

> 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.

Well, I'm using Xalan ! But if I understand it right, it should look similar to
this:

<xsl:temaple match="Para">
    <xsl:variable name="mycounter" select="$mycounter_from_parent_node +
string-length(.)">
    <xsl:if test="mycounter &lt; 1000">
	Char count: <xsl:value-of select="$mycounter"/>
        <xsl:apply-templates select="Para"/>
    <xsl:if/>
<xsl:template/>


Unfortunately I do not know how to obtain the value of $mycounter from the
parent-node (here: $mycounter_from_parent_node)!!  There are too many
possibilities (e.g. '../$mycounter') to try them all!  :(
Maybe you (or somebody else) could give or point me to a similar example ?? 
That would be great !!


-  Zeljko


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


Current Thread