Freigeben über


<xsl:key>-Element

Das <xsl:key>-Element deklariert einen benannten Schlüssel, d. h. ein Name-Wert-Paar, das einem bestimmten Element in einem XML-Dokument zugewiesen ist. Dieser Schlüssel wird mit der key()-Funktion in XPath-Ausdrücken verwendet, um den Zugriff auf die zugewiesenen Elemente in einem komplexen XML-Dokument zu optimieren.

<xsl:key
  name = QName
  match = Pattern
  use = Expression
</xsl:key>

Attribute

  • match
    Gibt das Muster an, das einen Knoten angibt, der diesen Schlüssel enthält.
  • use
    Gibt einen Ausdrücke an, der als Wert des Schlüssels verwendet werden soll. Der Schlüsselwert kann als Attribut, untergeordnetes Element oder als Inhalt des übereinstimmenden Elements vorliegen.

Elementinformationen

Anzahl der Vorkommen

Unbegrenzt

Übergeordnete Elemente

xsl:stylesheet

Untergeordnete Elemente

(Keine untergeordneten Elemente)

Hinweise

Sie können Schlüssel als verallgemeinerte IDs verwenden und damit auf Elemente in einem XML-Dokument verweisen. Deklarieren Sie dazu zunächst mithilfe von <xsl:key> einen Schlüssel für einen Knoten. Rufen Sie anschließend die key()-Funktion auf, um den Knoten abzurufen, wobei Sie den Namen und den Wert des Schlüssels als Argumente für die Funktion angeben müssen,. Weitere Informationen finden Sie im untenstehenden Beispiel.

Für einen Knoten können mehrere Schlüssel deklariert werden. Damit sind verschiedene Möglichkeiten zum Abfragen eines Knotens verfügbar.

Wenn Sie mit relativ großen XML-Dokumenten arbeiten, ermöglicht ein Schlüssel häufig das schnelle Abfragen von Elementen. Dies liegt daran, dass er im Grunde die Positionen der gewünschten Knoten vorab indiziert. Wenn jedoch <xsl:key>-Elemente kompiliert sind, werden solche Indizes vom XSLT-Prozessor nicht erstellt, es sei denn, eine key()-Funktion wird für die Schlüssel aufgerufen. Dadurch wird sichergestellt, dass die zeitaufwändige Indexoperation nur dann ausgeführt wird, wenn sie tatsächlich erforderlich ist.

In einem Stylesheet sind <xsl:key>-Elemente Elemente der obersten Ebene, die nicht in einer Vorlage enthalten sein können. Um zirkuläre Verweise zu vermeiden, können Sie Parameter- und Variablenverweise nicht im Rahmen eines <xsl:key>-Vergleichs verwenden.

Beispiel

Im folgenden Thema ist ein Beispiel für das <xsl:key>-Element enthalten.