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
Sean VenganSubject: Reassigning variable
Author: Sean Vengan
Date: 11 May 2005 01:09 AM
Hi,

I am trying to reassign variables in XSLT.

I know how to declare them :
<AP-TR-REFERENCE>
<xsl:variable name="g_CBA_HL1" expr="0"/>

<xsl:for-each select="a:message/a:COMMAND/a:proposePersonalLoanArrangementRequest/a:involvedPartyRole/a:involvedParty/a:financialStatement/a:income/a:item">
<xsl:choose>
<xsl:when test="$g_CBA_HL1 = 0">
<xsl:value-of select="a:value"/>
<xsl:value-of select="$g_CBA_HL1 = number($g_CBA_HL1) + number(a:value)"/>

</xsl:when>
<xsl:otherwise>
<!--<xsl:value-of select="number($g_CBA_HL1)+ number(a:value)"/>-->
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</AP-TR-REFERENCE>

Postnext
Ivan PedruzziSubject: Reassigning variable
Author: Ivan Pedruzzi
Date: 11 May 2005 06:11 AM
Hi Sean,

Variables in the XSLT are immutable, once the value is assigned can not be changed.

To implement a counter you will need to write a recursive template.

In this particular case it seems that you are trying to sum a numeric value so you could try the sum function.

<xsl:value-of select="sum(a:message/a:COMMAND/a:proposePersonalLoanArrangementRequest/a:involvedPartyRole/a:involvedParty/a:financialStatement/a:income/a:item)"/>

Hope this helps
Ivan

Postnext
Sean VenganSubject: Reassigning variable
Author: Sean Vengan
Date: 11 May 2005 06:38 PM
Hi Ivan,

Thx for your reply. Yes i thought that was the case with variables.

My understanding is that the sum function wil sum all the nodes in the nodeset however I need to be selective eg if the loop contained :

Item Value
A 10
B 5
C 7
D 4
E 9

I'm only interested in eg the value for A and D which I will then sum up.
Thx Sean

Posttop
Ivan PedruzziSubject: Reassigning variable
Author: Ivan Pedruzzi
Date: 12 May 2005 10:47 PM

Assume to have the following XML in input

<?xml version="1.0"?>
<ROOT>
<A>10</A>
<B>5</B>
<C>7</C>
<D>4</D>
<E>9</E>
</ROOT>

The following XSLT sum A and D

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="sum(/ROOT/A | /ROOT/D)"/>
</xsl:template>
</xsl:stylesheet>

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

 
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.