XML og XSLT

synes tiden fra indsendelse af spørgsmål og opgaver til svar har været hurtig hvilket var rigtig dejligt.

René Matzen, Revisor Informatik ApS

Word grundlæggende

 Det har været kanon, at underviseren svarer mig lynhurtigt.

 Det har været ok, at det var mig og kun mig, der skulle omsætte kursusmaterialet - hvilket var eminent.

 Jeg havde mulighed for at planlægge, hvornår jeg skulle løse kursusmaterialet - hvilket var glimrende.

Majbrit Larsen, Revisionsdirektoratet

SQL Programmering

Der har været en rigtig god rødtråd mellem teori og øvelserne hele vejen igennem kursuset. Der har samtidigt været udfordrende, men uden at jeg har siddet og slået mig selv på hovedet. Thor har samtidig været online godt og vel 24/7 til at besvare på spørgsmål og hjælpe mig igennem, hvor jeg har haft det svært.

Alexander Thompson, privat

ASP.NET MVC 5

Jeg er imponeret over hvor meget tid Thor brugte i starten på at opgradere sin server til seneste version og samtidig havde tålmodighed til at hjælpe så det hele spillede.

Han er desuden meget hurtig til at svare på spørgsmål og rette opgaver.

Vil helt klart overveje at tage endnu et kursus 

Jacob Nørgaard, Privat

Excel VBA

Tak for et rigtigt godt og lærerigt kursus.

En af de store fordele ved kurset er, at man kan tage det i det tempo man ønsker og der er ikke noget tidspres.

Opgaverne er gode og udfordrene. Man kan selv, indenfor rammerne, bestemme hvor meget man vil gøre ud af det.

Beskrivelserne til opgaverne er lavet på en sådan måde, at der er også overladt lidt til ens egen fantasi, som jeg synes er en meget god ting.

Kurset har et rigtigt godt niveau, og materialet er godt lavet.

Underviseren ??? Ja, jeg ved ikke hvornår han sover.

Der går ikke lang tid efter man har sendt en opgave, til den er rettet, og altid med en god og konstruktiv kommentar. Også man får underviserens løsningsforslag.

Der er altid hurtig og god hjælp at hente, hvis man er gået i stå. Man får ikke bare løsningen, men et hint, så man kan komme videre.

Jeg vil varmt anbefale det til andre, og gør det !

Endnu engang tak for et godt kursus.

Med venlig hilsen

Peter Juul Jacobsen

Peter Juul Jacobsen, Mærsk Olie & Gas A/S

Access grundlæggende 2010

Hurtig respons på indsendte opgaver og spørgsmål. På alle tider af døgnet ! Du står tidligt op og går sent i seng.

Per Verner Hansen, TELE Greenland A/S Vejrtjenesten

< >
Se flere referencer

Det grundlæggende

Det vigtigeste element i arbejdet med xslt er template elementet - det er det der beskriver hvad du vil have gjort:

Et lille eksempel

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Kunstner">
  Kunstner fundet
</xsl:template>
</xsl:stylesheet>

Template elementet løber dit xml dokument igennem og hver gang den støder på et element der opfylder dit match vil indholdet af template elementet blive indsat. Kører man denne transformation på det lille xml dokument her, burde der komme en linje for hver kunstner, der står i dokumentet...

Prøv det lige... - resultatet er ikke helt som forventet!!

Arbejder du i XMLSpy kan det være meget nyttigt at bruge debug funktionen til at se, hvordan XSL fortolkeren virker.

Ja, output bliver..

<?xml version="1.0" encoding="UTF-8"?>W:\Digital musik\!Rytmisk\Dan Turèll + 
Halfdan E\Glad i Åbningstiden\Dan Turèll + Halfdan E - .. (5).mp3.. (5)

Kunstner fundet

Glad i ÅbningstidenRock/Pop1314811W:\Digital musik\!Rytmisk\Caroline 
Henderson\cinemataztic\Caroline Henderson - Untill we meet again.mp3Untill we 
meet again

Kunstner fundet

cinematazticJazz1023170W:\Digital musik\!Rytmisk\Dan Turèll + Halfdan E\Glad i 
Åbningstiden\Dan Turèll + Halfdan E - .. (1).mp3.. (1)

Kunstner fundet

Glad i ÅbningstidenRock/Pop529126W:\Digital musik\!Rytmisk\Dan Turèll + Halfdan 
E\Glad i Åbningstiden\Dan Turèll + Halfdan E - .. (3).mp3.. (3)

Kunstner fundet

Glad i ÅbningstidenRock/Pop932940W:\Digital musik\!Rytmisk\U2\Rattle and Hum\U2 
- Freedom for My People.mp3Freedom for My People

Kunstner fundet

Rattle and HumRock/Pop738452W:\Digital musik\!Rytmisk\Mark Knopfler\Cal\Mark 
Knopfler - Waiting for Her.mp3Waiting for Her

Kunstner fundet

CalRock/Pop340202W:\Digital musik\!Rytmisk\U2\Rattle and Hum\U2 - The Star 
Spangled Banner.mp3The Star Spangled Banner

Kunstner fundet

Rattle and HumRock/Pop1543075W:\Digital musik\!Rytmisk\The Blues 
Brothers\Briefcase Full of Blues\The Blues Brothers - Closing- I Can't Turn You 
Loose.mp3Closing: I Can't Turn You Loose

Kunstner fundet

osv...

Default templates

Det giver lejlighed til at tale lidt om default templates. Hvis vi ikke leverer en template, der matcher med rod elementet i xml dokumentet vil xml parseren bruge en default template, der "bare" leverer indholdet af det pågældende element.

Output

Et andet problem vi ser er bogstaverne (i nogle tilfælde bliver de danske bogstaver ikke vist rigtigt)...
Det hænger sammen med at parseren pr. default bruger UTF-8. Det problem kan løses ved at skyde denne linje ind i toppen af stylesheetet:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="ISO-8859-1" />
<xsl:template match="Kunstner">
  Kunstner fundet
</xsl:template>
</xsl:stylesheet>

Noget der virker :-)

Og skal det give det output vi forventer kan det se sådan her ud - det virker måske lidt magisk lige nu, men det skal nok give mening når vi kommer lidt længere:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="ISO-8859-1" />
<xsl:template match="Kunstner">
  Kunstner fundet
</xsl:template>
<xsl:template match="text() | @*"></xsl:template>
</xsl:stylesheet>

Der giver

  Kunstner fundet

  Kunstner fundet

  Kunstner fundet

  Kunstner fundet

  Kunstner fundet

  Kunstner fundet

Og et lidt sjovere eksempel

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="ISO-8859-1" />
<xsl:template match="Kunstner">
  <xsl:value-of select="." />
</xsl:template>
<xsl:template match="text() | @*"></xsl:template>
</xsl:stylesheet>

Der gerne skal give

Dan Turèll + Halfdan ECaroline HendersonDan Turèll + Halfdan EDan Turèll + Halfdan EU2Mark KnopflerU2The Blues BrothersThe Blues BrothersDan Turèll + Halfdan EQueenMark KnopflerDan Turèll + Halfdan EQueenQueenQueenQueenMark KnopflerQueenDan Turèll + Halfdan EQueenSting

Ikke specielt sexet, men dog alligevel noget :)

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.