Re: local grouping
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]"> <!-- 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/
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format