K8112 XSLT/XPath 1.0 Grundlæggende

XSLT (XML Stylesheet Language Transformation) og XPath (XML Path) benyttes til at manipulere med XML-dokumenter. XSLT ændrer XML til et andet format – XPath gennemsøger et XML-dokument og finder eksakte informationer…

Kurset kan afholdes som udvidet kursus med udvidet kursusindhold. Kontakt instruktøren på info@zoomtek.dk eller telefon 4250 5040.

Målgruppe for XSLT-kurset

Kurset er målrettet EDI-konsulenter, integrationsudviklere, nemhandelskonsulenter, systemudviklere m.fl., der arbejder med konvertering af store datamængder med XSLT.

Forudsætninger for XSLT-kurset

Kurset vil normalt køre som klassekursus. Altså som et lukket kursus i din virksomhed. Er I mindst 3-4 personer, kan vi arrangere et kursus overalt i Danmark. Forudsætningerne for at deltage afhænger af jeres indbyrdes niveau. I kan være helt uden viden eller have arbejdet med XSLT nogle år. Vi skruer en plan sammen.

Efter kurset kan du:

Du bliver eksptert i XSLT. Både syntaktisk, men også implementeringen af XSLT. Vi gennemgår også fejlsøgning, processorer og hele arkitekturen omkring XSLT. Nedenstående kursusplan er et forslag. Præcist indhold aftales med Jer inden kurset.

Indhold af XSLT/XPath 1.0 Grundlæggende kurset

1 | Introduktion

  • Overblik over versioner: XSLT 1.0 -> 3.1
  • Forskel på XQuery og XSLT
  • XSLT er et funktionelt sprog, ikke et proceduresprog
  • Opsætning af miljø (opsæt aftales inden kursus), men kan være XMLSpy, Notepad++, Google Chrome, PowerShell, evt. Php.
  • Sikre at alle deltagere kan lave Hello World
  • Simpelst mulige transformering (3 linjer)
  • Test af processor med system-property()-funktionen

2 | De mest gængse XSLT-elementer

  • xsl:for-each, xsl:value-of
  • xsl:sort – forskellige datatyper, flere niveauer
  • xsl:if
  • xsl:choose, xsl:when xsl:otherwise
  • Hvad returneres? Enkeltværdier, nodeset?
  • Forskel på select (XPath) og traverse

3 | XPath Basic

  • Helt grundlæggende XPath
  • Simpel filtrering
  • Operatorer: = != > >= m.fl.

4 | Apply-templates I

  • XSLT-elementer til styring af templates
  • xsl:template,
  • xsl:apply-templates
  • Templates kaldes ift. XPath udtryk
  • Rækkefølge på kald – i få tilfælde kan man sige, at ‘rækkefølge matters’.
  • xsl:apply-templates med og uden select-attribute (stor forskel)

5 | Apply-templates II

  • xsl:call template
  • kald af templates med parametre
  • Erklæring af defaultparametre
  • Brug af enten lokale eller globale variable
  • Brug af priority-attribute ved overlappende XPath-udtryk
  • Brug af mode attribute
  • Brug af xsl:copy og xsl:copy-of sammen med xsl:apply-templates
  • Sortering af data med xsl:apply-templates

6 | Import(), include(), document()

  • xsl:import, xsl:include – forskel på import og include
  • xsl:apply-imports
  • xsl:document (XPath kald til fremmede xml-filer)
  • Eksterne og internt namespace
  • Brug af arrays i XSLT 1.0 (officielt ikke muligt, men en løsning findes)

7 | Løsning på de ting som XSLT 1.0 ikke kan

  • Gruppering af data
  • Recursive kald
  • Brug af tæller
  • Ændring af variable
  • Brug af arrays
  • Sortering og håndtering af datoer
  • Lave egne funktioner

8 | Variable, Param

  • Forskel på variable og param
  • Er en variable i virkeligheden en konstant? nej
  • Variable og param i forskellige scopes – globalt, lokalt, kald af værdier.
  • Indsætte parametre udefra koden – f.eks. fra JavaScript eller en editor.
  • Kan man lave en tæller – eller dynamisk sammenlægge en streng (concat)?

9 | Specielt for XML-til-XML transformation

  • xsl:output-elementet
  • processing-instruction()
  • strip-space(), preserve-space()
  • Brug af xsl:apply-templates herunder @*|node() og xsl:copy-of
  • Fjerne, indsætte, omdøbe, slette elementer
  • xls:text, xls:element(), xls:number()
  • Brug af exclude-result-prefixes

10 | Alt om attributter

  • Spørge om værdien af en attribut
  • Spørge på om en attribut overhovedet eksisterer
  • Spørge på navnet eller antallet af attributter
  • Oprette en attribut
  • xsl:attribute og xsl:attribute-set
  • Attribute Value Templates (tuborg-parenteser)

11 | XPath Funktioner

  • position(), last()
  • node(), name() – f.eks. returnér elementnavn ved generisk template
  • Kør xsl:for-each baglæns
  • Avanceret filtrering data på flere forskellige elementer
  • Fange specielle elementer: f.eks. kommentarer, output-instruktioner e.l.

12 | Flere XPath-funktioner

  • Numeriske funktioner
  • String funktioner
  • Boliske funktioner
  • Hvordan kommer man uden om de funktioner som mangler i XSLT 1.0 – f.eks. random, uppercase o.l.?
  • Sortering af samlede navne på efternavn
  • Sortering af datoer

13 | Axes f.eks. parent::*/child::*[3]

  • Axes bruges til at navigere rundt i XML-træet.
  • Overblik over tilgængelige Axes.
  • Fælder og smutveje
  • Performance – pas på

14 | XPath Predicates – avanceret filtrering

  • Syntaks – firkantede parenteser
  • Brug af ‘or’ ‘and’
  • Brug af flere samtidige predicates for at lave subset ud fra subset.

15 | Avancerede XSLT-funktioner

  • xsl:key()-funktionen
  • generate-id()-funktionen
  • system-property()-funktionen

16 | OIOUBL og Schematron (valgfrit)

  • Schematron (principper og XSLT)
  • Transformation af en OIOUBL-invoice

17 | Kundens filer (valgfrit)

  • Arbejde med kundens filer/dine filer
  • Spørgsmål, løsninger, gennemgang, optimering

18 | fejlretning/ -søgning

  • Fejlsøgning: ,
  • UnitTest: Er det muligt?

19 | Extensions

  • Brug af JavaScript og Visual Basic direkte i XSLT-koden (ikke standard, ikke anbefalet)
  • EXSLT (Extended XSLT) – opsætning, problemer
  • Saxon-funktioner. Funktioner udviklet specielt til Saxon processoren
  • MSXSL:script. Igen: Advarsel
  • Problemer med 1. og 2. class nodesets

20 | Afslutning

  • Performance – forbedring af hastighed på transformation – undgå performance-dræbere
  • Sikkerhed
  • Fordele/Ulempter ved XSLT (1.0)
  • Værktøjer – editorer, online-tools
  • Kort intro til muligheder i XSLT 2.0 og videre
  • Opgradering fra 1.0 til 2.0

Praktisk Information

Hvordan bestilles et kursus?

Udfyld formularen nedenfor eller til højre. Alternativt kan du blot skrive en mail på info@zoomtek.dk eller ringe 4250 5040.

Hvordan finder jeg prisen på kurset?

Forespørg på kurset ved at kontakte ZoomTek. Så finder vi det bedste kursus til dig. Du betaler ikke for formidlingen.

Hvornår afholdes kurset?

ZoomTek kan oftest skaffe et kursus inden for 30 dage. Enten vil vi finde et åbent kursus til dig. Alternativt får du et lukket firmakursus, hvor du og dine kolleger aftaler datoen direkte med kursusinstruktøren.

Få et skræddersyet kursus uden merpris

Kursusbeskrivelserne på ZoomTek.dk er vejledende. For et lukket firmakursus vil kurser altid blive skræddersyet gennem dialog med instruktøren. For åbne kurser har du mulighed for at tale med instruktøren før kurset.