XML-transformering med XSLT

XSLT, XSL Transformations, er en hurtig og nem måde at behandle XML-data på. I forrige artikel så vi på anvendelsesmulighederne, og i denne artikel ser vi på, hvordan XSLT er opbygget.

XSLT-standarden

I den forrige artikel, Fleksibel XML med XSLT, så vi hvilke fordele, XSLT har i forhold til programmatisk behandling af XML-data. Et af problemerne ved den store succes, XML har fået, er at der er en stor mængde af DTD-definitioner at forholde sig til, og her kan XSLT hjælpe til ved at omforme XML-data til nye sæt af XML-data, der så kan behandles i en eksisterende applikation.

Som regel vil en XSLT-transformering foregå i to skridt. Det første trin er at omstrukturere data, og det andet trin er at formatere data. Formatere behøves ikke at betyde HTML-koder - det kan også være et nyt sæt af XML-tags, der benyttes.

XSLT-standarden er stor og favner bredt, og det vil være for stor en mundfuld at gennemgå alle mulighederne her. Til sidst i artiklen giver vi en række links i stigende sværhedsgrad, der tilsammen kan udgøre en god indføring.

Her berører vi overfladisk de grundlæggende elementer i XSLT.

Et eksempel

Det grundlæggende er at definere en template, en skabelon, udfra et givent tag. Lad os først se et meget simpelt eksempel:

<artikel>
   En lille artikel om XML.
</artikel>

<xsl:template match="artikel">
   <html><body>
      <xsl:value-of />
   </body></html>   
</xsl:template>

Her vil XSLT-processoren matche alle forekomster af artikel. I resultat-træet, som er navnet for output, vil der først blive indsat "<html><body>", efterfulgt af indholdet i <artikel>-tagget, som er teksten "En lille artikel om XML.", og derefter "</body></html>".

Template-match er det grundlæggende element i XSLT. XSLT-dokumenter skal starte med elementet
   
<xsl:template match="/">

som betyder, at alle skabeloner i dokumentet skal behandles. Derefter kan der tilføjes skabeloner for indlejrede elementer, som for eksempel

<xsl:template match="overskrift">
   <p><font face="arial,helvetica" size="3"><b>
      <xsl:value-of />
   </b></font></p>
</xsl:template>

Alle elementer af typen

<overskrift>XSLT redder dagen for webudvikler</overskrift>

vil nu blive indkapslet af html-koderne i eksemplet.

Blandt de elementer, man oftest støder på er: apply-templates, for-each og value-of.

Elementet value-of substituerer indholdet i et element. Det kan bruges med attributten select, som kan udtrække underelementer.

Apply-templates fortæller XSLT-processoren, at efterfølgende elementer skal behandles med de templates, der er defineret i XSLT-dokumentet.

For-each elementet giver mulighed for at gennemløbe en række af elementer.

Udover de her nævnte, er der en mængde andre elementer i XSLT.

Lad os se på et større eksempel, der kan give et bedre indtryk af rækkevidden i XSLT. Brugere af Internet Explorer 5 kan se det genereret, mens andre må nøjes med en skærmdump.

Klik her for at se eksemplet.

Man skal dog ikke prøve på at skrue en XML-datakilde ind i en intrikat formatering med vold og magt. Som vi bemærkede i den forrige artikel, skal XSLT ses som et supplement til en programmeringsmæssig behandling, og ikke som et ekskluderende alternativ.

Videre læsning

Et lille link-kursus
Der er ikke så mange ressourcer på nettet om XSLT, men her har vi fundet nogle gode steder.

Kapitel 1 af bogen XSLT Programmers guide giver en glimrende indføring i baggrunden for XSLT.

Understanding XSLT - et lille men gennembearbejdet introduktionseksempel fra Webmonkey.

Kapitel 14 af the XML Bible: XSL Transformations - en god, praktisk og letforståelig gennemgang af XSLT på omkring 65 sider.

En lille tutorial fra Edinburgh University, om at løse ofte forekommende problemer ved udforming af XSLT-dokumenter, der skal omstrukturere XML-data.

XSLTs websted på W3.org - links til ressourcer, og selve specifikationen, der kan være tung læsning, og skal gemmes til sidst.

I den næste og sidste artikel om XML med XSLT, kigger vi på programmeringseksempler med Open Source XSLT-processoren Sablotron, der findes til de fleste platforme.

Computerworld Events

Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

It-løsninger | Online

Kod smartere med GitHub Copilot

Få styr på GitHub Copilot og skriv bedre kode hurtigere. Se hvordan Copilot løser opgaver, sparrer på fejl og løfter komplekse workflows. Oplev live demo og lær hvordan du kommer i gang med licenser og opsætning.

Sikkerhed | København

Cyber Threats

Få teknisk indsigt og konkrete løsninger til at modstå moderne cyberangreb. Lær af fejl, stop angreb i tide og byg systemer med ægte resiliens. Fokus på lavniveau-detektion, netværksovervågning og hurtig gendannelse. Deltag i Cyber Threats fra...

It-løsninger | København V

Platform X 2026: Forretning, teknologi og transformation

Mød verdens stærkeste og mest effektive platforme der driver den digitale transformation samlet i København - og dyk ned i den nyeste teknologi.

Se alle vores events inden for it

Navnenyt fra it-Danmark

Netip A/S har pr. 1. marts 2026 ansat Maria Lyng Refslund som Marketing Project Manager ved netIP Herning. Hun kommer fra en stilling som Marketing Project Manager hos itm8. Nyt job
Khaled Zamzam, er pr. 1. marts 2026 ansat hos Immeo som Consultant. Han er nyuddannet i Informationsteknologi fra DTU. Nyt job
SAP SuccessFactors Partner Pentos har pr. 1. marts 2026 ansat Plamena Cherneva som Seniorkonsulent indenfor SuccessFactors HCM. Hun skal især beskæftige sig med konfiguration og opsætning af SuccessFactors suiten, samt udvikle smarte løsninger til mellemstore danske virksomheder. Hun kommer fra en stilling som løsningsarkitekt indenfor HR IT hos LEO Pharma. Hun har tidligere beskæftiget sig med HR procesdesign, stamdata og onboarding. Nyt job

Plamena Cherneva

SAP SuccessFactors Partner Pentos

Den danske eID-virksomhed Idura har pr. 1. april 2026 ansat Kari Lehtimäki som Country Manager. Han skal især beskæftige sig med at styrke kendskabet til Iduras løsninger i Finland samt fremme samarbejdet med økosystemet omkring det finske Trust Network. Han kommer fra en stilling som Salgschef hos Telia Finland. Han er uddannet uddannet civilingeniør (M.Sc. Tech.) og medbringer ledelse, markedsindsigt og praktisk erfaring. Han har tidligere beskæftiget sig med salg og forretningsudvikling inden for Telias trust services-forretning. Nyt job

Kari Lehtimäki

Den danske eID-virksomhed Idura