XSLT <xsl:zastosuj-szablony>
❮ Pełne odniesienie do elementu XSLT
Definicja i użycie
Element <xsl:apply-templates> stosuje szablon do bieżącego elementu lub do węzłów podrzędnych bieżącego elementu.
Jeśli dodamy atrybut select do elementu <xsl:apply-templates>, przetworzy on tylko element potomny, który odpowiada wartości atrybutu. Możemy użyć atrybutu select, aby określić, w jakiej kolejności mają być przetwarzane węzły potomne.
Składnia
<xsl:apply-templates select="expression" mode="name">
<!-- Content:(xsl:sort|xsl:with-param)* -->
</xsl:apply-templates>
Atrybuty
Attribute | Value | Description |
---|---|---|
select | expression | Optional. Specifies the nodes to be processed. An asterisk selects the entire node-set. If this attribute is omitted, all child nodes of the current node will be selected |
mode | name | Optional. If there are multiple ways of processing defined for the same element, distinguishes among them |
Przykład 1
Owiń pojedynczy element h1 wokół każdego elementu tytułu w dokumencie:
<?xml version="1.0" encoding="UTF-8"?>
<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>
Przykład 2
Owiń pojedynczy element h1 wokół wszystkich elementów title, które są dziećmi komunikatu:
<?xml version="1.0" encoding="UTF-8"?>
<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>
Przykład 3
Zawiń pojedynczy element h1 wokół wszystkich węzłów podrzędnych wiadomości, które mają atrybut mode ustawiony na „duży”:
<?xml version="1.0" encoding="UTF-8"?>
<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>
❮ Pełne odniesienie do elementu XSLT