| 
 
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 < 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 | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: adding string-length values, Kay Michael | Thread | Re: adding string-length values, Jeni Tennison | 
| Re: call-template and javascript, Jiri Jirat | Date | Re: using ancestorChildNumber in VB, Jeni Tennison | 
| Month |