This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: adding string-length values


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]