Element <xsl:apply-templates> 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 dopasowane 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 zbiór 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

Obejmuje elementem h1 każdy element title:

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

Obejmuje elementem h1 wszystkie elementy title, które są podelementami message:

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

Obejmuje elementem h1 wszystkie podelementy message, dla których atrybut mode ma wartość "big":

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