[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: how to apply sum to a comma delimited list


Subject: [xsl] Re: how to apply sum to a comma delimited list
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 15 May 2002 07:30:08 -0700 (PDT)

"Florin Dragu" <florin dot dragu at memiq dot ro> wrote:

> is there any way that I can use sum() functions in XSLT on a comma 
> separated list (received as an output from a template)?

Using FXSL one would write:

sumCSV.xsl:
----------
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:vendor="urn:schemas-microsoft-com:xslt"
>

   <xsl:import href="strSplit-to-Words.xsl"/>
   <xsl:import href="sum.xsl"/>

   <xsl:output indent="yes" omit-xml-declaration="yes"/>
   
    <xsl:template match="/">
      <xsl:variable name="vwordNodes">
        <xsl:call-template name="str-split-to-words">
          <xsl:with-param name="pStr" select="/"/>
          <xsl:with-param name="pDelimiters" 
                          select="', &#9;&#10;&#13;'"/>
        </xsl:call-template>
      </xsl:variable>
      
      <xsl:call-template name="sum">
        <xsl:with-param name="pList" 
             select="vendor:node-set($vwordNodes)/*[. != '']"/>
      </xsl:call-template>
    </xsl:template>
    
    <xsl:template match="word">
      <xsl:value-of select="concat(position(), ' ', ., '&#10;')"/>
    </xsl:template>

</xsl:stylesheet>

When this is applied on the following xml document,

sumCSV.xml:
----------
<csv>1, 2, 3,4,5   
6,
7,8     , 9
,10
</csv>

the result is:
55


Cheers,
Dimitre Novatchev.



__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords