Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

XML formatering og transformation / XSLT elementer / xsl apply-templates


XSL fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i XSL som fjernundervisning på www.it-fjernundervisning.dk


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"/>

Øvelser

Det bliver godt nok først rigtig sjovt, når vi får value-of på banen også, men prøv alligevel at lege lidt med mulighederne.

Du kan evt. prøve at skrive de tidligere øvelser vi har arbejdet med om til at bruge apply-template.

   
Spacer Spacer Spacer Spacer