A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Das Toplevel Element xsl:key dient zur Deklaration eines Schlüssels. Der Schlüssel ist als eine Art Katalogliste zu verstehen. Er erhält mit dem name Attribut eine Referenz, mit dem match Attribut einen XPath-Ausdruck auf dessen treffende Knoten der Schlüssel angewandt wird und mit dem use Attribut ein weiteren XPath-Ausdruck, der als Wert der dem jeweiligen treffenden Knoten zugeordnet wird.
Der definierte Schlüssel wird mit der Funktion fn:key abgerufen. Hier kann der Funktion der Name des Schlüssels und mit dem zweiten Argument wird ein Vergleichswert übergeben. Die Funktion gibt dann alle Knoten aus, die von den Knoten des Schlüssels erfasst wurden und als zugeordneten Wert den Vergleichswert haben.
Die Funktion des xsl:key lässt sich auch durch Aufsuchen und Abfragen der entsprechenden Knoten ersetzen. Die Verwendung eines Schlüssels ist jedoch wesentlich performanter.
Attribute
name, match, use, collation<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:key name="land" match="stadt" use="@land"></xsl:key> <xsl:template match="/"> <root> <xsl:for-each select="key('land','de')"> <stadt> <name> <xsl:value-of select="name"></xsl:value-of> </name> <gemeindeschlüssel> <xsl:value-of select="gemeinde"></xsl:value-of> </gemeindeschlüssel> </stadt> </xsl:for-each> </root> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <root> <stadt> <name>Berlin</name> <gemeindeschlüssel>11000000</gemeindeschlüssel> </stadt> <stadt> <name>Hamburg</name> <gemeindeschlüssel>02000000</gemeindeschlüssel> </stadt> </root>
<?xml version="1.0"encoding="UTF-8"?> <root> <stadt land="de"> <name>Berlin</name> <einwohner>3420786</einwohner> <fläche>891.85</fläche> <gemeinde>11000000</gemeinde> <bewertung>5</bewertung> </stadt> <stadt land="de"> <name>Hamburg</name> <einwohner>1773218</einwohner> <fläche>755.264</fläche> <gemeinde>02000000</gemeinde> <bewertung>4</bewertung> </stadt> <stadt land="fr"> <name>Paris</name> <einwohner>2166200</einwohner> <fläche>105.40</fläche> <bewertung>3</bewertung> </stadt> <stadt land="de"> <name>Ludwigshafen</name> <einwohner>163777</einwohner> <fläche>77.68</fläche> <bewertung>-3</bewertung> </stadt> </root>
<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:key name="land" match="stadt" use="@land"></xsl:key> <xsl:template match="/"> <root> <xsl:for-each select="key('land','de')"> <stadt> <name> <xsl:value-of select="name"></xsl:value-of> </name> <gemeindeschlüssel> <xsl:value-of select="gemeinde"></xsl:value-of> </gemeindeschlüssel> </stadt> </xsl:for-each> </root> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <root> <stadt> <name>Berlin</name> <gemeindeschlüssel>11000000</gemeindeschlüssel> </stadt> <stadt> <name>Hamburg</name> <gemeindeschlüssel>02000000</gemeindeschlüssel> </stadt> <stadt> <name>Ludwigshafen</name> <gemeindeschlüssel></gemeindeschlüssel> </stadt> </root>
| > nach oben | |
| > zurück zur alphabetischen Liste der XSLT Elemente |