Chapter 11. Using Keys
A key provides a means of identifying some of the data that is associated with it. A key might identify a record in a database, for example, or an element in a collection, as in Java. XSLT also uses keys.
XSLT’s support for keys is provided through the
key
element and the key( )
function in tandem. The key
element declares the
key, and the key( )
function invokes it. The
examples that follow in this chapter will show you how to declare and
apply keys in several ways, including grouping.
These examples are simple by design, but they don’t clearly demonstrate the main benefit of keys, which is better performance. One way you could see a performance hike would be to call a key repeatedly on a document with many nodes. The reason for improved performance is that an XSLT processor creates an internal index for nodes that makes finding those nodes much faster.
By the way, you can read about keys in Section 12.2 of the XSLT specification.
A Simple Key
Following is part of the valid XML document un.xml (found in examples/ch11), which stores information about the 190 member states of the United Nations (UN). Example 11-1 is just a fragment of the document as, at over 700 lines, it’s too long to list in its entirety.
<?xml version="1.0" encoding="ISO-8859-1"?> <un> <state cc="af"> <name>Afghanistan</name> <admitted>19 Nov. 1946</admitted> </state> <state cc="al"> <name>Albania</name> <admitted>14 Dec. 1955</admitted> ...
Get Learning XSLT now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.