xsl-list
[Top] [All Lists]

Re: How to do this without updating a variable?

2005-09-08 09:33:13
Hi Anupam,
   Please try this stylesheet

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
 
<xsl:output method="text" /> 
 
<xsl:template match="/">
   Node: Start End
   <xsl:for-each select="//reg">
     <xsl:value-of select="." />:
     <xsl:choose>
       <xsl:when test="position() = 1">
         1
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="sum(preceding::reg/@count)+1" />
       </xsl:otherwise>
     </xsl:choose> -
     <xsl:choose>
       <xsl:when test="position() = 1">
         <xsl:value-of select="@count" />
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="@count + sum(preceding::reg/@count)" />
       </xsl:otherwise>
     </xsl:choose>
   </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

On 9/8/05, Agnisys Technology (P) Ltd. <agnisys(_at_)yahoo(_dot_)com> wrote:
Hi,
 I have seen past postings about the fact that variables cannot be updated. 
But I'm not sure how
to solve the following problem without variable update!

Input:

<top>
 <a>
   <reg count="5"> A0 </reg>
   <reg count="10"> A1 </reg>
 </a>
 <a>
   <reg count="10"> A2 </reg>
 </a>
</top>

Output:

 Node : start      end
 A0   :   1    -    5
 A1   :   6    -   15
 A2   :  16    -   25

--------------------------
So basically output of any node <reg> is based on all the <reg> nodes that 
have been processed
before it. If I could use a temporary variable, I would have just kept a 
running total of the
total "count" prior to processing that node.

Could someone suggest a solution or give me some pointer?

Thanks,
Anupam.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>