Re: [xsl] XSL taking very long

Subject: Re: [xsl] XSL taking very long
From: Kevin Jones <kjones@xxxxxxxxxxx>
Date: Thu, 26 Aug 2004 22:54:38 +0100
On Thursday 26 August 2004 21:44, Tengshe, Ashish wrote:
>
> The output I want is a table with
>
> item_id | title_txt | category  // grouped by category
>
> Should I use Keys instead?

In general yes, the main problem will be preceding search. If your input is 
smallish you may get away with just changing preceding to preceding-sibling 
which would help the performance somewhat.

The better solution would to be create key over the vform elements using 
Category as the key value. You can then use key() & generate-id() to test if 
a given vform is the first with that Category value. Something like this 
(untested),

<xsl:key name="vformByCategory" match="vform" use="Category"/>

<xsl:for-each select="/Search/SearchResults/vform">
	<xsl:if test="generate-id(.)=
			generate-id(key('vFormByCategory',Category)[1])">
		<!-- Do something -->
	</xsl:if>
</xsl:for-each>
		
Kev.

Current Thread