Click to See Complete Forum and Search --> : Help with either for-each or position and variables - NEWBIE question


chr158
01-27-2005, 06:12 AM
XML:
<lines>
<line type="Hire" serialised="true" ecoded="true">
<lineWeeklyRate>140.000</lineWeeklyRate>
<linePriceMultiplied>2135.0</linePriceMultiplied>
<lineQtyMultiplied>4270.0000</lineQtyMultiplied>
<accessories>
<accessory mandatory="mandatory">
<lineWeeklyRate>100</lineWeeklyRate>
<linePriceMultiplied>500</linePriceMultiplied>
<lineQtyMultiplied>1000</lineQtyMultiplied>
<warnings/>
<itemTexts/>
</accessory>
</accessories>
</line>
<line type="Hire" serialised="true" ecoded="true">
<lineWeeklyRate>140.000</lineWeeklyRate>
<linePriceMultiplied>2135.0</linePriceMultiplied>
<lineQtyMultiplied>4270.0000</lineQtyMultiplied>
<accessories/>
</line>
</lines>

I need to do the following:

For each line I need to summate the lineWeeklyRate of the line and any accessories that belong to that line.
I have tried the following and I know I need to use some sort of for-each or position, because at present the template is called for each line and summates ALL lines and accessories, hence giving the same total on all lines.

<xsl:template name="lineTotalForfait">
<xsl:variable name="mainLine"><xsl:value-of select="format-number(sum(/roots/root/record/header/lines/line/lineWeeklyRate),'########0.00')"/></xsl:variable>
<xsl:variable name="accessory"><xsl:value-of select="format-number(sum(lineWeeklyRate),'########0.00')"/></xsl:variable>
<xsl:value-of select="$mainLine + $accessory" />
</xsl:template>

Any ideas?
This is driving me mad and I know it is quite simple.

Kind Regards and Many Thanks in Advance

Chris Booth - UK

chr158
01-27-2005, 09:00 AM
Can anybody help me please???

chr158
01-27-2005, 11:06 AM
<xsl:template name="lineTotalForfait">
<xsl:for-each select="/roots/root/record/header/lines/line">
<xsl:value-of select="format-number(sum(lineWeeklyRate | accessories/accessorie/lineWeeklyRate),'########0.00')"/>
</xsl:for-each>
</xsl:template>


I have taken a step closer. this now returns me the correct values but all on one line: 240.00 140.00, rather than
240.00
140.00

Any Ideas?