At 10:20 PM 7/21/2006, Mike wrote:
I've never heard of xsl:key but the second illustration here:
http://www.cranesoftwrights.com/resources/xslkeys/index.htm
looks useful. It seems an xsl:key is like a variable containing
a list of elements that match the xpath expression. But the key()
function allows you to filter on that list further by providing a key
(overloaded term warning). So in the above illustration the xsl:key
statement builds a list of Employee elements and indicates that the SSN
child should be used when a key is supplied to the key() function. So
the key('people',@emp) call says, "fetch all elements in the 'people'
list using the SSN @emp.
Nice writeup.
Presumably each Employee would have a unique
SSN and therefore the key() call will return one Element.
And if the SSN isn't unique -- or maybe your key value is the surname
not the SSN -- you could get several Employees back, all with the
same SSN, surname or what have you.
Hence the applicability of keys for de-duplicating and accordingly
for grouping.
Note there's nothing you can do with a key that you can't do with
brute-force XPath. But since the processor has the information up
front to build an index, many expensive tree traversals are avoided
and the application scaled much better.
Cheers,
Wendell
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--