<< Chapter < Page Chapter >> Page >

(Se en visualisering af, hvordan en XSLT-transformation foregår).

Et XSLT-style sheet kan som sagt opfattes som en samling af transformationsregler. En transformationsregel omfatter normalt to instrukser: en instruks, der angiver, hvad der skal transformeres i kildedokumentet og en anden instruks, der specificerer, hvad resultatet af transformationen skal være. En transformationsregel til et bogkatalog i XML, der skal præsenteres på Nettet, kunne eksempelvis på (nogenlunde) mundret dansk lyde sådan her:

Find alle krimiforfattere og præsenter dem i en nummereret liste.

I en XML-til-HTML transformation skulle denne instruks måske formuleres som:

Find indholdet af elementet navn i alle forfatter -elementer, som findes i krimi -elementet i kildedokumentet og sæt det ind i et li -element i en ol .

En sådan instruktion ville med andre ord konvertere en XML-datastruktur som: <krimi> <forfatter> <navn>Jens Hansen</navn> </forfatter> <forfatter> <navn>Hans Jensen</navn> </forfatter> </krimi> til følgende HTML-output: <ol> <li>Jens Hansen</li> <li>Hans Jensen</li> </ol>

Øvelse

Hvordan transformationsregler rent faktisk kodes i XSLT, og hvordan et XSLT-style sheet egentlig er opbygget, illustreres nedenfor gennem et konkret eksempel. Eksemplet indeholder et kildedokument i XML (en pressemeddelelse), et XSLT-style sheet og den HTML-kode, som genereres, når style sheetet appliceres på kildedokumentet i en XML-processor. Kig på kildedokument, style sheet og output og besvar de tilhørende spørgsmål: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="pressemeddelelse1.xsl"?> <pressemeddelelse> <dato>12.12.2008</dato> <overskrift>Ny dokumentstandard i Opdikt A/S </overskrift> <resume>Opdikt A/S har i dag offentliggjort planer om at indføre XML som fælles dokumentstandard i hele organisationen</resume> <indhold>På direktionens møde i dag blev det besluttet at indføre XML som fælles format i virksomhedens Web-baserede kommunikation. XML vil blive anvendt på virksomhedens intranet, i den Web-baserede markedskommunikation og, sidst men ikke mindst, som dataudvekslingsformat i forbindelse med e-handelstransaktioner. Implementeringen af planen varetages af virksomhedens IT-afdeling og forventes at løbe et halvt år. </indhold> <kontaktperson> <fornavn>Hans</fornavn> <efternavn>Jensen</efternavn> <afdeling>It-afdelingen</afdeling> <email>hans@it.opdikt.dk</email> </kontaktperson> </pressemeddelelse> <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> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-16"> <title>Pressemeddelelse</title> </head> <body> <p style="font-size:24">Pressemeddelelse</p> <p align="right">12.12.2008</p> <p style="font-weight:bold; font-size:18">Ny dokumentstandard i Opdikt A/S </p> <p><i>Opdikt A/S har i dag offentliggjort planer om at indføre XML som fælles dokumentstandard i hele organisationen</i></p> <p> På direktionens møde i dag blev det besluttet at indføre XML som fælles format i virksomhedens Web-baserede kommunikation. XML vil blive anvendt på virksomhedens intranet, i den Web-baserede markedskommunikation og, sidst men ikke mindst, som dataudvekslingsformat i forbindelse med e-handelstransaktioner. Implementeringen af planen varetages af virksomhedens IT-afdeling og forventes at løbe et halvt år. </p> <p><b>Kontakt:</b></p> <p>Hans Jensen (email: hans@it.opdikt.dk)</p> </body> </html>

Spørgsmål

  • Hvordan kobles XML-dokument og XSLT-style sheet sammen?
  • Kildedokumentet er i XML. Hvad med XSLT-style sheetet?
  • Nogle elementer i style sheetet starter med ”forstavelsen” xsl , men andre ikke gør. Hvorfor mon?
  • Hvilken instruks bruges i style sheetet til at udtrække data fra kildedokumentet?
  • Hvordan lokaliseres det indhold i kildedokumentet, der skal udtrækkes?
  • Man taler nogle gange om, at XML-indhold ”pakkes ind” i HTML. Forklar denne metafor.
  • Bliver alt indhold vist i HTML-outputtet? Hvorfor/hvorfor ikke?

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xml og xslt - en introduktion. OpenStax CNX. Mar 03, 2009 Download for free at http://cnx.org/content/col10642/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xml og xslt - en introduktion' conversation and receive update notifications?

Ask