XSLT <xsl:key>
The <xsl:key> element is a top-level element which declares a named key that can be used in the style sheet with the key() function.
Syntax
<xsl:key
name="name"
match="pattern"
use="expression"/>Attributes
| Attribute | Value | Required/Optional | Description |
|---|---|---|---|
name |
name | Required | Specifies the name of the key |
match |
pattern | Required | Defines the nodes to which the key will be applied |
use |
expression | Required | The value of the key for each of the nodes |
Example
Suppose you have an XML file called "persons.xml":
<persons>
<person name="Natan" id="020534"/>
<person name="Leon" id="030359"/>
<person name="Tom" id="123456"/>
</persons>You can define a key in an XSL file like this:
<xsl:key name="preg" match="person" use="@id"/>To find the person with id="123456", write (in the XSL file):
<?xml version="1.0" encoding="UTF-8"?>
<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','123456')">
<p>
Id: <xsl:value-of select="@id"/><br />
Name: <xsl:value-of select="@name"/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>