Please try this XSLT 1.0 stylesheet. It uses a recursive named
template as suggested by Mike. Mike has given you all the options.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/segment">
<xsl:call-template name="sum">
<xsl:with-param name="list" select="data" />
<xsl:with-param name="result" select="0" />
</xsl:call-template>
</xsl:template>
<xsl:template name="sum">
<xsl:param name="list" />
<xsl:param name="result" />
<xsl:choose>
<xsl:when test="$list">
<xsl:call-template name="sum">
<xsl:with-param name="list" select="$list[position() > 1]" />
<xsl:with-param name="result" select="$result +
substring($list[1],7,4)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Regards,
Mukul
On 10/5/05, piming(_dot_)kuo(_at_)worldspan(_dot_)com
<piming(_dot_)kuo(_at_)worldspan(_dot_)com> wrote:
Is there any wavy to sum partial of the text? For example, I want to sum
all substring(data,7,4) from the following:
<segment>
<data>XXXYYY1000</data>
<data>XXXZZZ 100</data>
<data>SSSYYY1200</data>
</segment>
The result will be:
1000 + 100 + 1200 = 2300
Have a nice day!
Piming Kuo
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--