The <xsl:key>
element declares a named keythat is, a name-value pair assigned to a specified element in an XML document. The key is used with the key()
function in XPath expressions to help you access the assigned elements in a complex XML document efficiently.
<xsl:key name = QName match = Pattern use = Expression> </xsl:key>
Number of occurrences | Unlimited |
Parent elements | xsl:stylesheet |
Child elements | (No child elements) |
You can use keys as generalized IDs for referencing elements in an XML document. To do this, first use <xsl:key>
to declare a key for a node. Then call the key() function to retrieve the node, supplying the name and value of the key as the function arguments,. For more information, see the example below.
Multiple keys can be declared on a node. This provides multiple ways to query a node.
When you work with relatively large XML documents, a key is often a fast wayto query elements. This is because it essentially indexes the locations of the desired nodes ahead of time. However, when <xsl:key>
elements are compiled, the XSLT processor will not create such indexes unless a key()
function is called against the keys. This ensures that the time-intensive indexing operation is performed only when it is necessary.
In a stylesheet, <xsl:key>
elements are top-level elements, and cannot appear within a template. To avoid circular references, you cannot use parameter or variable references as part of an <xsl:key>
match.
The following topic provides an example of the <xsl:key>
element.