XSLT <xsl:key>
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.
note
A key does not have to be unique!
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.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>