XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Sam SamSubject: Summation in XSLT
Author: Sam Sam
Date: 28 Feb 2006 03:04 AM
Originally Posted: 27 Feb 2006 11:56 PM
Hi Please do let me know as to how do we handle the following scenario, Source XML <?xml version="1.0" encoding="UTF-8" ?> <root>< <del> <value> <p1>10</p1> <p2>5</p2> </value> <value> <p1>10</p1> <p2>5</p2> </value> <value> <p1>10</p1> <p2>15</p2> </value> </del> </root> Target XML <?xml version="1.0" encoding="UTF-8" ?> <root> <del> <value>35</value> </del> </root> So basically what i am trying to achieve is, i will have to compare the value <p1> and <p2> and pick up the greater of the 2 and sum it up. So in our above example it becomes 10 + 10 + 15 = 35 How can this be achieved using XSLT 1.0. regards Sam

Postnext
Minollo I.Subject: Summation in XSLT
Author: Minollo I.
Date: 28 Feb 2006 10:07 AM
There are ways to do this in a much simpler way using XSLT 2.0; and probably also using XSLT 1.0; but this should do something similar to what you are looking for:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<root>
<del>
<value>
<xsl:apply-templates select="/root/del/value[1]"/>
</value>
</del>
</root>
</xsl:template>
<xsl:template match="value">
<xsl:param name="curSum" select="0"/>
<xsl:variable name="aValue">
<xsl:choose>
<xsl:when test="p1 &gt; p2">
<xsl:value-of select="p1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="p2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="following-sibling::value[1]">
<xsl:apply-templates select="following-sibling::value[1]">
<xsl:with-param name="curSum" select="$curSum+$aValue"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$curSum+$aValue"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Posttop
Sam SamSubject: Summation in XSLT
Author: Sam Sam
Date: 28 Feb 2006 10:36 AM
Thanks a lot Minolo.

cheers
Sam

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.