XSLT <xsl:key> Element
Definition and Usage
The <xsl:key> element is a top-level element that can declare a named key (i.e., a name and value pair assigned to the specified elements in the XML document).
This key is used through the key() function in the stylesheet to help you efficiently access the assigned elements in complex XML documents.
Note:The key does not have to be unique!
Syntax
<xsl:key name="name" match="pattern" use="expression"/>
Attribute
Attribute | Value | Description |
---|---|---|
name | name | Required. Specify the name of the key. |
match | pattern | Required. Define which node the key is applied to. |
use | expression |
Required. Specify the expression to be used as the value of this key. The key value can be any of the following: attribute, child element, or content of the matching element. |
Instance
Example 1
Assuming you have an XML file named "persons.xml":
<persons> <person name="Tarzan" id="050676"/> <person name="Donald" id="070754"/> <person name="Dolly" id="231256"/> </persons>
You can define a key in the XSL file like this:
<xsl:key name="preg" match="person" use="@id"/>
To find the person with id="050676", please use the following code (in the XSL file):
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:key name="preg" match="person" use="@id"/> <xsl:template match="/"> <html> <body> <xsl:for-each select="key('preg','050676')"> <p> Id: <xsl:value-of select="@id"/><br /> Name: <xsl:value-of select="@name"/> </p> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>