XSLT <xsl:apply-templates>-Element
Definition und Verwendung
Das <xsl:apply-templates>-Element kann Mustertemplate auf das aktuelle Element oder die Unter elemente des aktuellen Elements anwenden.
Wenn wir dem <xsl:apply-templates>-Element ein select-Attribut hinzufügen, wird es nur die Unter elemente verarbeiten, die dem Wert dieses Attributes entsprechen. Mit dem select-Attribut können wir die Reihenfolge der Verarbeitung der Unter elemente 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. Ein Stern (*) wählt den gesamten Knotensatz. Wird dieses Attribut weggelassen, werden alle Unter knoten des aktuellen Knotens ausgewählt. |
mode | Name | Optional. Wenn mehrere Verarbeitungsmethoden für denselben Element existieren, kann mode verwendet werden, um sie zu unterscheiden. |
Beispiel
Beispiel 1
Mit dem h1-Element umschließt man jeden title-Element im Dokument:
<?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"> <h1><xsl:apply-templates/></h1> </xsl:template> </xsl:stylesheet>
Beispiel 2
Um alle title-Elemente aller Unter节点 des Dokuments, die zu message gehören, mit dem h1-Element einzuklammern:
<?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="title"/></h1> </xsl:template> </xsl:stylesheet>
Beispiel 3
Um alle Unter节点 des Dokuments, deren mode-Attribut auf "big" gesetzt ist, mit dem h1-Element einzuklammern:
<?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> </xsl:stylesheet>