XSLT <xsl:apply-templates>-Element

Definition und Verwendung

Das Element <xsl:apply-templates> kann Muster an das aktuelle Element oder die Unter elements des aktuellen Elements anwenden.

Wenn wir dem <xsl:apply-templates>-Element das Attribut select hinzufügen, wird es nur die Unter elements verarbeiten, die dem Wert dieses Attributes entsprechen. Mit dem Attribut select können wir die Reihenfolge der Verarbeitung der Unter nodes bestimmen.

Syntax

<xsl:apply-templates select="expression" mode="name">
  <!-- Content:(xsl:sort|xsl:with-param)* -->
</xsl:apply-templates>

Attribut

Attribut Wert Beschreibung
select Ausdruck Optional. Definiert den zu verarbeitenden Knoten. Der Stern (*) wählt den gesamten Knotensatz. Wenn dieses Attribut weggelassen wird, werden alle Unter nodes des aktuellen Knotens ausgewählt.
mode Name Optional. Wenn mehrere Verarbeitungsmethoden für denselben Element existieren, kann mit "mode" unterschieden werden.

Beispiel

Beispiel 1

Um jedes title-Element im Dokument mit dem h1-Element zu umgeben:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="title">
  <xsl:template match="message"><xsl:apply-templates/><xsl:apply-templates select="*" mode="big"/>
</h1>
</xsl:template>

Beispiel 2

Um das title-Element aller Unter elements des Dokuments, die zu message gehören, mit dem h1-Element zu umgeben:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="message"><xsl:apply-templates select="title"/><xsl:apply-templates select="*" mode="big"/>
</h1>
</xsl:template>

Beispiel 3

Um die gesamten Unter nodes des Dokuments, deren Attribut "mode" auf "big" gesetzt ist, mit dem h1-Element zu umgeben:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="message"><h1><xsl:apply-templates select="*" mode="big"/>
</h1>
</xsl:template>