Element <xsl:apply-templates> w XSLT

Definicja i użycie

Element <xsl:apply-templates> może zastosować szablon do bieżącego elementu lub jego podelementów.

Jeśli dodamy atrybut select do elementu <xsl:apply-templates>, będzie on przetwarzał tylko podelementy pasujące do wartości tego atrybutu. Możemy użyć atrybutu select, aby określić kolejność przetwarzania podpunktów.

Gramatyka

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

Atrybut

Atrybut Wartość Opis
select Wyrażenie Opcjonalnie. Określa węzeł do przetworzenia. Gwiazdka wybiera cały zestaw węzłów. Jeśli pominie się tę właściwość, wybierze się wszystkie podwęzły bieżącego węzła.
mode Nazwa Opcjonalnie. Jeśli dla tego samego elementu zdefiniowano wiele metod przetwarzania, można je odróżnić za pomocą mode.

Przykład

Przykład 1

Otocz elementem h1 każdy element title w dokumencie:

<?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>

Przykład 2

Otocz wszystkie elementy title, które należą do message, elementem h1 w dokumencie:

<?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>

Przykład 3

Otocz wszystkie podnode message w dokumencie, dla których ustawiono atrybut mode na "big", elementem h1:

<?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>