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>