Sign Up
Search
Options
search
Chat
Help
News
Log in
Not Logged in
Home
»
Boards
»
Stylus Studio Developer Network
»
XSLT Help and Discussion
»
Reassigning variable
Topic
Topic Page
1
2
3
4
5
6
7
8
9
Prev Topic
Next Topic
next
Subject:
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>
next
Subject:
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
next
Subject:
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
top
Subject:
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
Prev Topic
Next Topic
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 to Conference:
Select Conference
Stylus Studio Feature Requests
Stylus Studio Technical Forum
Website Feedback
XSLT Help and Discussion
XQuery Help and Discussion
Stylus Studio FAQs
Stylus Studio Code Samples & Utilities
Stylus Studio Announcements
go
Log In Options
Username:
Password:
Site Map
|
Privacy Policy
|
Terms of Use
|
Trademarks
Stylus Scoop XML Newsletter:
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.