Subject: [xsl] Problem for : increment a variable in a for-each? From: que Li <queincanada@xxxxxxxx> Date: Thu, 25 Nov 2004 22:52:07 -0500 (EST) |
Hi: I found several people asked the same question with me "Re: [xsl] how to increment a variable in a for-each loop" but it really didn't resolve my problems. So just wonder could I get help ? I spent lots of time on it and can't get solution! My xml file <root> <list> <ID>21</ID> <Title>text1</Title> <ParentID>1<ParentID> </list> <list> <ID>22</ID> <Title>text2</Title> <ParentID>21<ParentID> </list> <list> <ID>23</ID> <Title>text3</Title> <ParentID>21<ParentID> </list> <list> <ID>24</ID> <Title>text4</Title> <ParentID>21<ParentID> </list> <list> <ID>25</ID> <Title>text5</Title> <ParentID>1<ParentID> </list> </root> What I want do: I need do different thing for the node which parentID is 21(by passing in )(exampel:If it is first child then I need bold. if not first and not last one then I need do second thing. If the node is last child then I need do third things. I try to use the call:template and xsl:for each to pass the parameter but the count is always set to initial since I run so many for each what I shoud do ? My code <xsl:template match="root"> <xsl:for each select="list"> <xsl:if test="parented =1"> <xsl:call-template name= !0findChildNode!1> <xsl:with-param name=!1ID!1 select="ID!1/> </xsl:call-template> </xsl:for-each> </xsl:template> <xsl:template name="findChildNode!1> <xsl:param name="ID!1> <xsl:param name="count!1 select="0!1/> <xsl:for-each select="../list!1> <xsl:if test="parentID=$ID!1> <xsl:call-template name="formatChild!1> <xsl:with-param name="count" select="$count+1!1/> </xsl:if> </xsl:for each> </xsl:template> <xsl:template name="formatChid!1> <xsl:param name="count!1> <xsl:variable name="TotalChildCount!1 select=!1?!1/> (Note: I don't know how I can get all child node count based on the one parentID) <xsl:choose> <xsl:when test="$count=1!1>do firsth thing</xsl:when> <xsl:when test="$count > 1 and $count < $TotalChildCount!1>do second thing</xsl:when> <xsl:when test="$count=$TotalCount!1>do third thing</xsl:when> </xsl:choose> </xsl:template> Question: 1. Why every time the $count is 0 and never incresement ? 2. How I can get the total child count value based on the parent ID? Thanks for any help Helena ______________________________________________________________________ Post your free ad now! http://personals.yahoo.ca
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] four time post:, que Li | Thread | Re: [xsl] Problem for : increment a, Markus Vaterlaus |
[xsl] four time post:, que Li | Date | Re: [xsl] Web sites: building commo, Raffaele Sena |
Month |