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 |