Subject: Re: [xsl] local grouping From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 23 Nov 2004 21:43:56 +0000 |
Hi Konrad, > For each <g> element I want to group the children into sub elements > based on the value of x, so like this: You can use the Muenchian method with a key that uses a combination of the identity (via generate-id()) of the <g> element and the value of the x attribute. Try: <xsl:key name="mykey" match="line" use="concat(generate-id(..), @x)"/> <xsl:template match="g"> <xsl:variable name="this" select="generate-id()" /> <xsl:for-each select="*[count( . | key('mykey', concat($this, @x))[1]) = 1]"> <!-- build the inner g's --> </xsl:for-each> </xsl:template> This should be faster since you're getting to the child elements directly via the key rather than having to use the intersection extension function. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] local grouping, Konrad Rokicki | Thread | [xsl] widows and orphans for tables, Jenna Simmer |
RE: [xsl] document() path relative , Passin, Tom | Date | Re: [xsl] includes, Jeni Tennison |
Month |