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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> - Stylus Studio - Registrar en o... (1)
-> + Stylus Studio - Registrar en o... (2)
-> + Can a pipeline send a file by ... (2)
-> + After Updateing WIN10 to WIN11... (12)
-> + Where do I add the custom java... (3)
-> + Where is the Diagram tab? (5)
-> + Applying XSLT to Word DOCX/XML (2)
-> - CSV conversion via ConvertToXM... (1)
-> + Text symbols in SS not same as... (4)
-> + Exposing xquery as webservice ... (6)
-> + Syntax Identifier (2)
-> + Saving a Converted XML as an X... (5)
-> + Output document cannot be pars... (4)
-> - Archiving output from conversi... (1)
-> + EDIFACT guideline from Stylus ... (3)
-> + CSV file putting all the data ... (5)
-> + Can't install Home version 64b... (5)
-> + presale - Can I covers this sc... (5)
-> + Problem with UNB (5)
-> + Splitting EDIFACT files pipeli... (4)
-- [1-20] [21-40] [41-60] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Rahul VaidSubject: Sum of specific values in delimited list
Author: Rahul Vaid
Date: 23 Jan 2006 02:31 AM
Hi,
Iam having a delimited xml list as follows:

<positions rowCount="9">
<row values="DEALER |FX Spot|ABC-DEF|2006-01-10|-40000|29530|0.73825" />
<row values="DEALER |FX Spot|CAD-USD|2006-01-09|-38000|32088.12|1.18423890212328" />
<row values="DEALER |FX Spot|LMN_PWR|2006-01-10|1106000|-1256981.1|1.1365109403255" />
<row values="DEALER |FX Spot|GBP-JPY|2006-01-11|-50000|10247500|204.95" />
<row values="DEALER |FX Spot|LMN_PQR|2006-01-10|2060000|-3556593|1.72650145631068" />
</positions>

Now I can retrive a particular value in this list either using str:split or by using str:tokenize ie as follows:

<xsl:template match="row">
<tr>
<xsl:variable name="positionColumns" select="str:split(string(@values), '|')"/>
<td>
<xsl:value-of select = "format-number($positionColumns[position() = 6],'###,###.#######')"/>
</td>
</tr>
</xsl:template>

But now I want to also print the sum of this value ie I want to get the output of :
29530+32088.12-125698+10247500-3556593
(from the above xml)

The problem here is sum as far as my knowledge is concerned only takes nodes as parameter.Please help me out with the solution of this problem.
Thanx in advance.
Rahul.

Postnext
Tony LavinioSubject: Sum of specific values in delimited list
Author: Tony Lavinio
Date: 23 Jan 2006 02:54 PM
There are several ways to solve this. Probably the crudest is to
turn it into a problem of recursion instead of iteration, like the
attached.

There are more elegant methods that work better for larger input
sets. The divide-and-conquer approach, where you keep bisecting
the data, is relatively efficient.

There's a book called 'XSLT Cookbook' by Sal Mangano that has lots
of useful recipes for problems like this.

But, now, on to your answer.


UnknownRahul.xsl
Sums by recursion XSLT program

Posttop
Rahul VaidSubject: Sum of specific values in delimited list
Author: Rahul Vaid
Date: 23 Jan 2006 11:17 PM
Thanx a ton for the solution and the advice for the CookBook.
The solution that you gave worked out very well.
Regards,
Rahul.

   
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.