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.

Example 11-1. Information about countries that belong to the UN
<?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.