Hop til teksten

IT FJERNUNDERVISNING
- IT kurser når Du har tid!

xsl:applytemplates

bruges til at kalde en anden template inde fra en template. Syntaksen er:

<xsl:apply-templates select="xpath udtryk" mode="mode navn">

Vi kommer tilbage til brugen af mode atributten senere.

Hvis vi kigger på dette lille eksempel

<xsl:template match="Nummer">
<Track>
<xsl:apply-templates>
</Track>
</xsl:template>

Når XSL processoren behandler denne template vil alle elementer der hedder "Nummer" blive fundet og for hver nummer vil der blive indsat et element der hedder "Track" i resultatet - men som følge af xsl:apply-templates vil processoren løbe xml dokumentet igennem for at se om der er templates der matcher - nu med udgangspunkt i "Nummer" elementet.

Det giver først for alvor mening, hvis der er en flere templates i xsl dokumentet.

Her er et lille eksempel:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" />
<xsl:template match="/">
<html>
<head><title>Et eksempel</title></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>


<xsl:template match="Kunstner">
<p>Kunstner</p>
</xsl:template>


</xsl:stylesheet>

Denne lille leg går galt som vi tidligere har set - på grund af standard templates. Det er der to løsninger på - enten kan vi bruge

<xsl:template match="text() | @*"></xsl:template>

Eller også kan vi specificere hvad vi vil matche med i apply-templates

<xsl:apply-templates select="RytmiskMusik/Nummer/Kunstner"/>

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.