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]
Other format: [Raw text]

Re: how to apply sum to a comma delimited list


"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


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