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.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Fiftytwo A/S
Konsulentydelser og branchespecifikke softwareløsninger til retail, e-Commerce, leasing og mediebranchen.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Computerworld Cloud & AI Festival 2025

Med den eksplosive udvikling indenfor cloud & AI er behovet for at følge med og vidensdeling større end nogensinde før. Glæd dig til to dage, hvor du kan netværke med over 2.400 it-professionelle, møde mere end 50 it-leverandører og høre indlæg fra +90 talere. Vi sætter fokus på emner som AI; infrastruktur, compliance, sikkerhed og løsninger for både private og offentlige organisationer.

17. september 2025 | Læs mere


IT og OT i harmoni: Sikring uden at gå på kompromis med effektiviteten

IT og OT smelter sammen – men med risiko for dyre fejl. Få metoder til sikker integration med ERP, kundesystemer og produktion. Tilmeld dig og få styr på forskellene og faldgruberne.

24. september 2025 | Læs mere


NIS2: Vi gør status efter tre måneder og lærer af erfaringerne

Vær med, når vi deler oplevelser med implementering af NIS2 og drøfter, hvordan du undgår at gentage erfaringerne fra GDPR – og særligt undgår kostbar overimplementering.

30. september 2025 | Læs mere