XSLT <xsl:apply-templates>-element
Definition och användning
Elementet <xsl:apply-templates> kan tillämpa mallar på aktuellt element eller underelement till aktuellt element.
Om vi lägger till ett select-attribut till <xsl:apply-templates>-elementet, kommer det endast att hantera underelement som matchar värdet på detta attribut. Vi kan använda select-attributet för att definiera ordningen för att hantera underpunkter.
Syntaks
<xsl:apply-templates select="expression" mode="name"> <!-- Innehåll:(xsl:sort|xsl:with-param)* --> </xsl:apply-templates>
Egenskap
Egenskap | Värde | Beskrivning |
---|---|---|
select | Uttryck | Valfritt. Anger den nod som ska behandlas. Stjärna (*) väljer hela noduppsättningen. Om attributet utelämnas väljs alla undernoder till den aktuella noden. |
mode | Namn | Valfritt. Om det finns flera behandlingsmetoder definierade för samma element, kan mode användas för att skilja dem från varandra. |
Exempel
Exempel 1
Använd h1-element för att omge varje title-element i dokumentet:
<?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>
Exempel 2
Omslut alla title-element som tillhör alla underelement av message med h1-element:
<?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>
Exempel 3
Omslut alla undernoder till message med h1-element som har mode-egenskapen satt till "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>