Subject: RE: RE: [xsl] Linear counting problem in nested loop. From: cknell@xxxxxxxxxx Date: Thu, 22 Jan 2004 11:51:44 -0500 |
It is a bedrock principle of XSLT that variables, once bound, cannot be bound again. In short, you don't increment variables as you might in a loop construct in other programming languages. You will have to find another way. I suggest you investigate the generate-id() function. -- Charles Knell cknell@xxxxxxxxxx - email -----Original Message----- From: Govil, Anoop (Contractor) <Anoop.Govil@xxxxxxxxxxxxxxxx> Sent: Thu, 22 Jan 2004 10:55:27 -0500 To: "'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: RE: [xsl] Linear counting problem in nested loop. Hi Kakridge, Actually, I don't need to count them all but need a running linear counter that I use to give unique ids to various html elements like divs, img and anchor tags while inside the for-each loop and inside the nested for-each sub-loop. Also, this counter needs to be in same order,i.e., the order should be same when inside the sub-loop and when in the main loop as I mentioned in my original posting. Please suggest. Thanks. Anoop -----Original Message----- From: kakridge@xxxxxxxxxxxxx [mailto:kakridge@xxxxxxxxxxxxx] Sent: Thursday, January 22, 2004 10:26 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] Linear counting problem in nested loop. Just to be clear, you cannot take the value before the iteration, like this: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="MENU"> <xsl:variable name="total" select="count(MenuItems) + count(*/SubMenuItems)"/> <xsl:value-of select="$total"/> </xsl:template> </xsl:stylesheet> -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Govil, Anoop (Contractor) Sent: Thursday, January 22, 2004 9:34 AM To: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx' Subject: [xsl] Linear counting problem in nested loop. Hi, I have the following XML and want to implement such that I can have a linear counter increment with each iteration of the parent for-each loop and also the nested for-each loop. <?xml version="1.0"?> <MENU> <MenuItems> <MenuLabel>Menu 1</MenuLabel> <SubMenuItems> <SubMenuLabel>Sub Menu 1</SubMenuLabel> </SubMenuItems> <SubMenuItems> <SubMenuLabel>Sub Menu 11</SubMenuLabel> </SubMenuItems> </MenuItems> <MenuItems> <MenuLabel>Menu 2</MenuLabel> <SubMenuItems> <SubMenuLabel>Sub Menu 2</SubMenuLabel> </SubMenuItems> </MenuItems> </MENU> e.g. The counter should return as: 1 for Menu 1 2 for SubMenu 1 3 for SubMenu 11 4 for Menu 2 5 for SubMenu 2 So far, what I got is the counter breaks when it reaches the second <MenuItems>, as it doesn't know about the subMenu from the first MenuItems counted 3 already... So the output of my code is something like this: 1 for Menu 1 2 for SubMenu 1 3 for SubMenu 11 2 for Menu 2 3 for SubMenu 2 Any help in fixing this will be much appreciated. Thanks a lot! Anoop XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Linear counting problem i, Govil, Anoop (Contra | Thread | RE: RE: [xsl] Linear counting probl, Govil, Anoop (Contra |
RE: [xsl] matching the first follow, kakridge | Date | RE: [xsl] matching the first follow, Lars Huttar |
Month |