Re: [xsl] Testing if an attribute name is in a list of names

Subject: Re: [xsl] Testing if an attribute name is in a list of names
From: Kevin Jones <kjones@xxxxxxxxxxx>
Date: Thu, 19 May 2005 15:26:11 +0100
On Thursday 19 May 2005 14:08, Paul A. Hoadley wrote:
>
> > I suppose you could use keys for faster access, but I don't know how
> > that would affect total transform time.
>
> You're right, I guess the question is "does this affect the transform
> time?"  Even the nested for-each constructs don't seem to, probably
> because the input is only of the order of hundreds or a few thousand
> rows in my case.  I was just wondering whether there is an idiom in
> XSL that is analogous to my pseudocode above.  I can't seem to hit on
> it myself.

Using key() is the easy way to get O(n). You can also solve this via 
contains() against a string built up from the attribute names with delimiters 
but that is less flexible although possibly quicker for some datasets, i.e. 
not many attribute names to match against or few tests to perform.

Creating a key will cost something but my experience is that for small 
datasets you probably won't care and for large ones the cost is very often 
small in comparison to the gains you can get.

Regards,
Kev.

Current Thread