Subject: RE: [xsl] Grouping problem? From: "Conal Tuohy" <conalt@xxxxxxxxxxxxxxx> Date: Wed, 23 Apr 2003 09:26:19 +1200 |
Lars Huttar wrote: > I like it! Interesting way to form a group. > > It might be slow for large source documents, maybe order(N*N) > where N is the number of ele elements (because for each element you > have to sum all preceding elements); but I can't see a way > around that... unless you want to recursively loop through > the elements, > keeping a running total. Like this: <xsl:template match="root"> <xsl:copy> <xsl:call-template name="group-ele"> <xsl:with-param name="ele-list" select="ele"/> </xsl:call-template> </xsl:copy> </xsl:template> <xsl:template name="group-ele"> <xsl:param name="ele-list" select="/.."/> <xsl:param name="count" select="0"/> <xsl:if test="$ele-list"> <xsl:variable name="first-ele" select="$ele-list[1]"/> <xsl:variable name="new-count" select="$count + $first-ele/@sum"/> <xsl:if test="$new-count > 10"> <br/> </xsl:if> <xsl:copy-of select="$first-ele"/> <xsl:call-template name="group-ele"> <xsl:with-param name="ele-list" select="$ele-list[position()>1]"/> <xsl:with-param name="count" select="$new-count mod 10"/> </xsl:call-template> </xsl:if> </xsl:template> As you say, Lars, this approach would probably be a lot quicker for large documents. Cheers! Con XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Grouping problem?, Lars Huttar | Thread | RE: [xsl] Grouping problem?, Conal Tuohy |
[xsl] Re: Grouping problem?, Dimitre Novatchev | Date | Re: [xsl] A Question **TO** XSLT Ne, Peter Flynn |
Month |