This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Computing string-value of nodesets
- To: XSL-LIST <xsl-list at mulberrytech dot com>
- Subject: RE: Computing string-value of nodesets
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Sat, 11 Nov 2000 02:40:19 -0800 (PST)
- Reply-To: xsl-list at mulberrytech dot com
Here's a non-recursive solution (because some XSLT processors will
crash when performing a highly recursive transformation):
<xsl:template name="averageLength">
<xsl:param name="pValue"/>
<xsl:variable name="vContainer">
<xsl:for-each select="$pValue">
<xsl:element name="body">
<xsl:copy-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="theParent"
select="msxsl:node-set($vContainer)"/>
<xsl:choose>
<xsl:when test="count($theParent//text()) > 0">
<xsl:value-of select="string-length($theParent) div
count($theParent//text())"/>
</xsl:when>
<xsl:otherwise>
0
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Cheers,
Dimitre Novatchev.
P.S. Oviously, the result will vary depending on whether and how
<xsl:strip-space> is used.
---------------Original Message-----------------------------
From: Kay Michael <Michael.Kay@icl.com>
Subject: RE: Computing string-value of nodesets
> I'd like to know the average string-length of a collection of
> nodes (in a nodeset).
You can program this by a recurive template, or you can use the Saxon
extension function:
saxon:sum( $nodes, saxon:expression('string-length(.)'))
Mike Kay
__________________________________________________
Do You Yahoo!?
Thousands of Stores. Millions of Products. All in one Place.
http://shopping.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list