xslt en introduktion
Download
Skip this Video
Download Presentation
XSLT – en introduktion

Loading in 2 Seconds...

play fullscreen
1 / 50

XSLT – en introduktion - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

XSLT – en introduktion. Digitalisering av kulturarvet. Idag. Vad är XSLT? Hur fungerar XSLT? XPath och noder XSLT:s notation Templates, repetitioner och villkor TEI. XSL-språk. XSLT Ett språk för att transformera XML-dokument X-PATH Ett språk för att navigera i XML-dokument

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'XSLT – en introduktion' - kiet


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
xslt en introduktion

XSLT – en introduktion

Digitalisering av kulturarvet

[email protected]

slide2
Idag
  • Vad är XSLT?
  • Hur fungerar XSLT?
  • XPath och noder
  • XSLT:s notation
  • Templates, repetitioner och villkor
  • TEI
xsl spr k
XSL-språk
  • XSLT
    • Ett språk för att transformera XML-dokument
  • X-PATH
    • Ett språk för att navigera i XML-dokument
  • XSL-FO
    • Ett språk för att formatera XML-dokument
vad r xslt
Vad är XSLT?
  • Står för eXstensible Stylesheet Language for Transformation
  • Ett programmeringsspråk för att transformera XML-dokument
  • En W3C-standard
  • XSLT transforms an XML source-tree into an XML result-tree
den r da tr den
Den röda tråden…

DATA LOGIK GRÄNSSNITT

XML XSLT XHTML(+CSS)

xml xslt xhtml och css
XML, XSLT, XHTML och CSS

XML

XSLT

CSS

Omvandling

XHTML

en post i xml filen
En post i XML-filen

Sue

Grafton

L som i laglös

Deckare

20

xslt kod
XSLT-kod

xmlns="http://www.w3.org/1999/xhtml">

Författare:


Titel:

Kategori:


xpath
XPath
  • Ett språk för att navigera i XML-dokument
  • En syntax för att definiera delar av ett XML-dokument
  • En W3C-standard
  • XSLT använder XPath för att navigera i XML-dokument
xpath noder
XPath - noder
  • XML-dokument behandlas som träd bestående av noder
  • Typer av noder
    • Element
    • Attributes
    • Text
    • Namespaces
    • Processing instruction
    • Comment
    • Document node (dokumentets rotelement)
xpath noder1
XPath - noder

Sue

Grafton

L som i laglös

Deckare

20

xpath relationer mellan noder
XPath – Relationer mellan noder
  • Varje element och attribut har en och endast en förälder
  • Elementnoder har noll till många barn
  • Noder med samma förälder kallas syskon
    • Det första syskonet är äldst, det näst första är näst äldst och så vidare…
  • En förfader är en förälders förälder
  • En ättling är ett barns barn
xpath peka ut noder
XPath – Peka ut noder
  • Nodnamn – Pekar ut samtliga barn till noden
  • / - Pekar ut från rotelementet
  • // - Pekar ut noder i dokumentet från den aktuella nod som matchar utpekningen
  • . – Pekar ut aktuell nod
  • .. – Pekar ut föräldern till aktuell nod
  • @ - Pekar ut attribut
xpath peka ut noder1
XPath – Peka ut noder
  • boksamling – Pekar ut samtliga barn till noden boksamling
  • /boksamling – Pekar ut rotelementet boksamling
  • boksamling/bok – Pekar ut alla bok-element som är barn till boksamling
  • //bok – pekar ut samtliga bok-element, oavsett var de befinner sig i hierarkin
  • boksamling//titel – Pekar ut samtliga titel-element som är ättlingar till boksamling, oavsett var de befinner sig i hierarkin
  • //@currency – Pekar ut samtliga attributnoder med namnet currency
exempel template anrop
Exempel: template-anrop

  • Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är barn till forfattare som i sin tur är barn till bok
en annan variant
En annan variant

  • Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är ättling till bok
en tredje variant
En tredje variant

  • Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är barn till forfattare
en fj rde variant
En fjärde variant

  • Fungerar om eNamn finns på endast en nivå i trädet
  • Skulle eNamn finnas på flera nivåer förväxlar tolken noderna med varandra
  • Att ha samma namn på noder på olika nivå i XML-trädet är dock ingen optimal lösning
operatorer
Operatorer
  • A=A (A är ekvivalent med A)
  • A!=B (A är inte ekvivalent med B)
  • A>B (A är större än B)
  • A
  • A>=D (A är större än eller lika med D)
  • A<=E (A är mindre än eller lika med E)
  • Ett uttryck av detta slaget är antingen sant (true) eller falskt (false)
operatorer1
Operatorer
  • A=A and B!=C
    • Sant om och endast om A är ekvivalent med A och B inte är ekvivalent med C
  • A=A or B=C
    • Sant om A är ekvivalent med A eller om B är ekvivalent med C
    • Om första påståendet är sant kollas inte fler påståenden
  • not (A=B)
    • Sant om och endast om A inte är ekvivalent med B
aritmetiska operatorer
Aritmetiska operatorer
  • + addition 5+2
  • - subtraktion 7-2
  • * multiplikation 8*3
  • div division 6 div 3
  • mod modulus 9 mod 2
slide24
XSLT
  • Förändra en icke presentabel fil till en webbsida
  • Formatera ett dokument till PDF eller liknande
  • Förändra en XML-vokabulär till en annan
  • Extrahera specifik information från ett dokument och formatera på ett annat sätt
xslt s notation
XSLT:s notation
  • Alla element i XSLT innehåller prefixet xsl:

operatorer i xslt
Operatorer i XSLT
  • A=A A är ekvivalent med A
  • A!=B A är inte ekvivalent med B
  • 8 > 6 8 är större än 6
  • 6 < 8 6 är mindre än 8
  • A >= B A är större än eller lika med B
  • B <= A B är mindre än eller lika med A
operatorer i xslt1
Operatorer i XSLT
  • AND, OR och AND…!
    • pris < 10 and kategori = 'Deckare’
    • pris < 10 or kategori = 'Deckare’
    • pris < 10 and kategori != 'Deckare’
templates
Templates
  • Innehåller regler som appliceras vid matchning av en specificerad nod
  • Syntax:

  • Samtliga attribut är valfria, men minst ett av attributen name och match måste återfinnas
repetitioner i xslt for each
Repetitioner i XSLT: for-each

…kod som utförs på varje nod som överensstämmer med X-PATH-uttrycket

styrstrukturer i xslt
Styrstrukturer i XSLT

om (villkor a) utför a

annars om (villkor b) utför b

annars utför c

med if
Med if

…kod som utförs om villkor a är sant

…kod som utförs om villkor b är sant

…kod som utförs om villkor c är sant

med choose
Med choose

...kod som utförs om villkor a är sant

...kod som utförs om villkor b är sant

…kod som utförs om varken villkor a eller b är sant

exempel choose
Exempel: choose

,

är en deckare

,

är inte en deckare

tei och xslt
TEI och XSLT
  • På samma sätt som en XML-fil kan transformeras med XSLT kan text uppmärkt med TEI transformeras
  • Även här används XPath för navigering
den tei uppm rkta texten
Den TEI-uppmärkta texten

The Life and Opinions of Tristram Shandy, Gentleman, by Laurence Sterne: Electronic edition

lite inneh ll
Lite innehåll…

<xsl:value-of select="TEI.2/teiHeader/fileDesc/</p><p> titleStmt/title"/>

ok men det ser ju inte s lyckat ut
OK, men det ser ju inte så lyckat ut…
  • /TEI.2//* matchar alla noder som befinner sig i TEI.2
  • skriver ut värdet på den nod som XSLT-processorn pekar på
  • Om en nod har fler än ett barn kommer innehållet i denna nod (plus dess barn) att skrivas ut lika många gånger som antalet barn
templates1
Templates

  • Skriver ut allt
  • Ytterligare templates och mer styrning behövs
placering av nytt template
Placering av nytt template

</p><p> <xsl:value-of select="TEI.2/teiHeader/fileDesc/titleStmt/title"/></p><p>

varf r skrivs headern ut igen
Varför skrivs headern ut igen?

  • Skriver ut allt (inklusive teiHeader-noden)
  • Detta åtgärdas med hjälp av select
att titta p ver sommaren
Att titta på över sommaren
  • http://www.w3schools.com/xsl/
  • http://www.w3.org/TR/xslt
  • Ray, Eric T. (2003). Learning XML. 2. ed. Sebastopol: OReilly. 399 s.
  • Kompendiet Digitalisering av text
ad