I need a loop up to a specific node position()
and sum of these nodes. For example:
- if my position is 2 then node[1] + node[2]
- if my position is 5 then node[1] + node[2] + node[3] + node[4] + node[5]
How can that be done in XSLT?
do have following xml
<?xml-stylesheet type="text/xsl" href="sum.xsl"?><root><FIDetail Node1="5" Node2="2" Node3="9" Node4="5" Node5="1" Node6="6" Node7="5" Node8="5" Node9="12" Node10="6" Node11="4" Node12="8" Node13="4" Node14="6" Node15="5" Node16="6" Node17="2" Node18="7" Node19="4" Node20="5" Node21="4" Node22="6" Node23="4" Node24="11" Node25="5" Node26="1" Node27="7" Node28="1" Node29="4" Node30="2" Node31="5" Node32="2" Node33="6" Node34="4" Node35="7" Node36="7" Node37="9" Node38="10" Node39="3" Node40="8" Node41="8" Node42="5" Node43="5" Node44="2" Node45="5" Node46="12" Node47="9" Node48="14" Node49="18" Node50="1"/></root>
i am trying to show output as below
5 sum of Node1
7 sum of Node1 + Node2
16 sum of Node1 + Node2 + Node3
.... sum of Node1 + ... + Node50
any one please help me that what will be XSL
not working xsl is as below
<?xml version="1.0" encoding="UTF-8"?>
<xsl:for-each select="//FIDetail/@*">
<br/>
<xsl:value-of select="sum(preceding-sibling::*) + ."/>
=
<xsl:for-each select="preceding-sibling::*">
<xsl:value-of select="name()"/> +
</xsl:for-each>
<xsl:value-of select="name()"/>
</xsl:for-each>
</xsl:template>