Subject: [xsl] recursive counter not incrementing From: Christopher Hansen <chansen1@xxxxxxxxx> Date: Wed, 8 Dec 2004 17:21:22 -0500 |
Essentially i'm trying to use recursion to implement a counter in this manner: while counter != number of items counted in each itemset (itemsets.xml) { If there is any occurrance of item[counter] in the transaction list counter++; } However, my output shows that my counter increments from 0 to 1 once and only once. (XML source at the bottom) Thanks, Chris <xsl:key name="coupKey" match="frequent_item_sets/set" use="item"/> <xsl:variable name="transitems1" select="document('transactions.xml')//transaction[1]" /> <xsl:output method="html"/> <xsl:template match="/"> <xsl:variable name="set1" select="key('coupKey',$transitems1/items/item[1])" /> <xsl:variable name="set2" select="$transitems1/items" /> <xsl:call-template name="subset"> <xsl:with-param name="s1" select="$set1"/> <xsl:with-param name="s2" select="$set2"/> <xsl:with-param name="itemcount" select="count($set1/item)"/> <xsl:with-param name="i" select="0"/> </xsl:call-template> <xsl:template name="subset"> <xsl:param name="s1"/> <xsl:param name="s2"/> <xsl:param name="itemcount"/> <xsl:param name="i"/> <!-- $itemcount will be '3' --> <p><xsl:value-of select="$itemcount"/></p> <p><xsl:value-of select="$i"/></p> <xsl:if test="$i != $itemcount"> <xsl:for-each select="$s1/item"> <xsl:variable name="sub1" select="."/> <xsl:for-each select="$s2/item"> <xsl:if test="$sub1 = . "> We have a match! <xsl:call-template name="subset"> <xsl:with-param name="s1" select="$s1/item[following-sibling]"/> <xsl:with-param name="s2" select="$s2"/> <xsl:with-param name="itemcount" select="$itemcount"/> <xsl:with-param name="i" select="($i)+1"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:template> </xsl:stylesheet> --------------------------------- itemsets.xml: <frequent_item_sets> <set id="1" coupon="50 cents"> <item>Milk</item> <item>Butter</item> <item>Eggs</item> </set> ...... transactions.xml: <transactions> <transaction> <customer> <name>Dan</name> <email>asdf@xxxxxxxx</email> </customer> <items total="$11.78"> <item>Milk</item> <item>Butter</item> <item>SuperPretzel</item> <item>Paper Towel (Scott's)</item> </items> </transaction> ......
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] recursive counter not inc, David Carlisle | Thread | [xsl] Error in saxon, Beatriz Langiano |
RE: [xsl] Error in saxon, Michael Kay | Date | Re: [xsl] recursive counter not inc, David Carlisle |
Month |