XSLT <xsl:key>Element
Vollständige XSLT-Elementreferenz
Definition und Verwendung
Das <xsl:key>-Element ist ein Element der obersten Ebene, das einen benannten Schlüssel deklarieren kann (d. h. Namen und Wertepaare bestimmten Elementen in einem XML-Dokument zuweisen). Dieser Schlüssel wird in Stylesheets über die Funktion key() verwendet und hilft Ihnen, effizient auf zugewiesene Elemente in komplexen XML-Dokumenten zuzugreifen.
Hinweis:Schlüssel müssen nicht eindeutig sein!
Syntax
<xsl:key
name="name"
match="pattern"
use="expression"/>
name="name"
match="pattern"
use="expression"/>
Attribute
| Attribute | Wert | Beschreibung |
|---|---|---|
| name | name | Erforderlich. Gibt den Namen des Schlüssels an. |
| Treffer | pattern | Erforderlich. Definiert, auf welchen Knoten der Schlüssel angewendet wird. |
| Verwenden Sie | expression | Erforderlich. Gibt den Ausdruck an, der als Schlüsselwert für jeden Knoten verwendet werden soll. |
Beispiel 1
Angenommen, Sie haben eine XML-Datei namens "persons.xml":
<persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</persons>
Sie können einen Schlüssel in der XSL-Datei wie folgt definieren:
<xsl:key name="preg" match="person" use="@id"/>
Um die Person mit id="050676" zu finden, verwenden Sie diesen Code (in der XSL-Datei):
<?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>
<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>
Vollständige XSLT-Elementreferenz Weitere Erweiterungen