<< Chapter < Page | Chapter >> Page > |
XSLT-stylesheets bruges meget ofte til at konvertere XML-dokumenter til HTML, således at disse kan vises som websider. Et XSLT-stylesheet til transformation af XML til HTML kunne f.eks. være nedenstående, som specificerer, hvordan data i et "XML-kildedokument" skal udtrækkes og vises i HTML. (Kildedokumentet kan ses her .)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title>Pressemeddelelse</title>
</head>
<body>
<p style="font-size:24">Pressemeddelelse</p>
<p align="right"><xsl:value-of select="pressemeddelelse/dato" /></p>
<p style="font-weight:bold; font-size:18">
<xsl:value-of select="pressemeddelelse/overskrift" /></p>
<p><i><xsl:value-of select="pressemeddelelse/resume" /></i></p>
<p><xsl:value-of select="pressemeddelelse/indhold" /></p>
<p><b>Kontakt:</b></p>
<p><xsl:value-of select="pressemeddelelse/kontaktperson/fornavn" />
<xsl:text> </xsl:text>
<xsl:value-of select="pressemeddelelse/kontaktperson/efternavn" />
<xsl:text> </xsl:text>
(email: <xsl:value-of select="pressemeddelelse/kontaktperson/email" />)</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet>...</xsl:stylesheet>
. Rodelementet indeholder, udover en versionsangivelse, også en såkaldt
name space deklaration , nemlig
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
. Denne kode har blandt andet til formål at identificere alle de elementer i stylesheetet, som tilhører "XSLT name space", dvs. elementer, som har en særlig betydning eller funktion i XSLT. Rent konkret drejer det sig om alle de elementer, der har
præfixet "xsl". Disse elementer udgør de egentlige instruktioner i programmet og omfatter foruden selve rodelementet eksempelvis
<xsl:template>
og
<xsl:value-of>
.
<xsl:template>
-elementet omfatter et sæt af sammenhørende transformationsregler kaldet en
template rule . I ovennævnte style sheet er der kun en template rule, men almindeligvis vil et XSLT-style sheet indeholde flere.
<xsl:template>
-elementet har en attribut, nemlig "match", der angiver den del af kildedokumentet, som skal transformeres. I dette tilfælde er værdien af attributten "/", hvilket lidt firkantet udtrykt betyder, at "hele kildedokumentet" skal behandles.
<xsl:value-of>
-elementet. Dette element bruges i XSLT til at angive hvilke data, der skal udtrækkes fra kildedokumentet. Selve identifikationen af data sker gennem attributten "select", der udpeger de relevante data og deres placering i kildedokumentet Et eksempel er f.eks.
select="pressemeddelelse/kontaktperson/efternavn"
. Med denne værdi anføres det altså, at indholdet af elementet "efternavn", som er underelement til elementet "kontaktperson", der igen er underelement til "pressemeddelelse", skal udtrækkes.
<html>
,
<body>
,
<p>
og så videre. Selve koblingen mellem xsl-elementer og outputelementer sker ved, at de indlejres i hinanden. Et eksempel:
<p><i><xsl:value-of select="pressemeddelelse/resume" /></i></p>
Her er xsl-instruktionen
<xsl:value-of select="pressemeddelelse/resume">
indlejret i HTML-koden
<p><i>...</i></p>
. Det betyder konkret, at indholdet af elementet "resume", der ligger i elementet "pressemeddelelse" udtrækkes fra kildedokumentet og præsenteres i et kursiveret afsnit. Med en metafor kan man sige, at XML-data udtrækkes og "pakkes ind" i HTML.
Notification Switch
Would you like to follow the 'Xml og xslt - en introduktion' conversation and receive update notifications?