Der Wert des match
Attributs der <xsl:template>
Anweisung muss ein Spielmuster.
Übereinstimmungsmuster bilden eine Teilmenge der Menge aller möglichen XPath-Ausdrücke. Die erste, natürliche Einschränkung besteht darin, dass ein Übereinstimmungsmuster eine Gruppe von Knoten auswählen muss. Es gibt auch andere Einschränkungen. Insbesondere sind umgekehrte Achsen in den Lokationsschritten nicht erlaubt (können aber innerhalb der Prädikate angegeben werden). Außerdem sind in XSLT 1.0 keine Variablen- oder Parameterverweise zulässig, diese sind jedoch in XSLT 2.x zulässig.
/
in XPath bezeichnet die Wurzel oder Dokumentknoten. In XPath 2.0 (und damit XSLT 2.x) kann dies auch als document-node()
geschrieben werden.
Ein Übereinstimmungsmuster kann die //
abbreviation enthalten.
Beispiele für Spiel-Muster:
<xsl:template match="table">
kann auf jedem Element table
genannt angewandt werden.
<xsl:template match="x/y">
kann auf jedem Element y
deren Mutter genannt angewandt werden soll, ein Element namens x
.
<xsl:template match="*">
kann auf jedes Element angewendet werden.
<xsl:template match="/*">
kann nur auf das oberste Element eines XML-Dokuments angewendet werden.
<xsl:template match="@*">
kann auf jedes Attribut angewendet werden.
<xsl:template match="text()">
kann auf jeden Textknoten angewendet werden.
<xsl:template match="comment()">
kann auf einen Kommentarknoten angewendet werden.
<xsl:template match="processing-instruction()">
kann auf jeden Verarbeitungsanweisungsknoten angewendet werden.
kann auf jeden Knoten angewendet werden: Element, Text, Kommentar oder Verarbeitungsanweisung.
Diese Antwort ist eigentlich nicht korrekt. Nicht jeder XPath-Ausdruck kann als legales Übereinstimmungsmuster angegeben werden. –
Ich stimme zu, aber meiner Meinung nach ist es für einen Anfänger besser, das Matchmuster zu betrachten, wie es mit XPath definiert ist. – Koynov