|
Subject: RE: [xsl] How do I get a SUM of the string-length of all child nodes ?? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 27 May 2005 10:17:58 +0100 |
In XSLT 1.0 the sum() function can only sum the string values of nodes, it
can't sum a set of computed numbers. This means your options are
(a) a two-phase transformation: first create a tree in which the computed
numbers are represented as attributes (typically), then sum over these
attributes
(b) a recursive template to compute the sum
In 2.0, like many things, it's much easier:
sum(child::node()/string-length())
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Bovy, Stephen J [mailto:STEPHEN.Bovy@xxxxxx]
> Sent: 27 May 2005 07:36
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How do I get a SUM of the string-length of all
> child nodes ??
>
> I am not sure how to do this:
>
> here is what I have which is obviously incorrect:
>
> <xsl:template match="/*/*/*" >
> <xsl:param name="rcnt" />
> <xsl:choose>
> <xsl:when test="position()=1">
> <xsl:variable name="csum" select="sum(string-length(.))"/>
> rsizes <xsl:value-of select="$rcnt"/> =<xsl:value-of select="$csum"/>;
> </xsl:when>
> <xsl:otherwise>
> bt('<td align="center"> ');
> bt('<xsl:value-of select="."/> ');
> bt('</td> ');
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] How do I get a SUM of the str, Bovy, Stephen J | Thread | Re: [xsl] How do I get a SUM of the, David Carlisle |
| [xsl] simple algebra on attributes., talosso | Date | RE: [xsl] Date expressions in XSLT , Michael Kay |
| Month |