Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 4 Heikki Hietala HAAGA Ammattikorkeakoulu Helsingin liiketalousinstituutti Kevät 2010.

Samankaltaiset esitykset


Esitys aiheesta: "T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 4 Heikki Hietala HAAGA Ammattikorkeakoulu Helsingin liiketalousinstituutti Kevät 2010."— Esityksen transkriptio:

1 T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 4 Heikki Hietala HAAGA Ammattikorkeakoulu Helsingin liiketalousinstituutti Kevät 2010

2 XSLT alkaa tästä Mitä on XSLT? –eXtensible Stylesheet Transformations –Muuntaa XML:n esitysmuotoon XSLT-prosessissa, jossa XML:ään lisätään halutun esitysmuodon mukainen tyyli: http://www.xml.com/pub/a/2000/08/holman/index.html?page=4

3 Mitä siis muunnetaan ja miksi? Esimerkiksi XML:ää HTML:ksi tai puhtaaksi tekstiksi:

4 Transformaatio voi tapahtua serverillä tai vasta asiakassovelluksessa Server-side transformation on alla, client-side yllä

5 Miltä XSLT näyttää? Tämä XML Hello world. *** ja tämä XSL **** tuottavat

6 Osaset Julistus Xpath – funktio joka vastaa juurielementtiä muotoiluja Elementin ”greeting” arvo muotoilut loppuvat template loppuu

7 Mistä XSLT:ssä on kyse? XSLT on ohjelmointikieli, jolla tehdään datalle muunnoksia yhdestä muodosta toiseen. xsl:template on kaiken perusta. Se on sääntöpohjaisen transformaation pohjana. –Prosessoidaan joko match- tai name-attribuutin pohjalta –Match käyttäää mallia liipaisimena –Name käyttää nimeä Xsl:templatea kutsutaan xsl:apply-template – funktiolla xsl:apply-template on aina templaten sisäpuolella xsl:apply-template määrittää, mitä templaten solmua kutsutaan, eli se on ikään kuin aliohjelmakutsu

8 Tässä on pätkä XML:ää Blues Brothers John Landis Dan Aykroyd 1.1.1980 true Blues Brothers 2000 John Landis Dan Aykroyd James Belushi 1.1.2000 false

9 Vastaava XSLT Filmi:

10 Jatkuu…

11 Loppupala… Ensiesitys: Oscar saatuna:

12 Ja miltä se näyttää? XSLT käy läpi kaikki solmut, ja toimii sen mukaan, millainen elementti juuresta alkaen löytyy XSLT:hen voi liittää tekstiä (filmi) Muotoilut (hr)

13 Otetaanpa pala kerrallaan. XML-fileeseen tulee kirjata, mitä xsl-tyylitiedostoa käytetään. XSL-fileeseen tulee kirjata, mikä on namespace, alla uusin: Jos lausekkeessa ei käytetä etuliitettä xsl:, parseri lataa sen tekstinä tulosteeseen Näin käy HTML-datalle XSL:n sisällä.

14 Sitten alkaa prosessointi Prosessointi alkaa XPath-lausekkeella joka valitsee sen XML-elementin, jota käsitellään. Useimmiten valitaan solmu käyttäen operaattoria match Jos valitaan koko dokumentti, valitaan juurisolmu sanomalla match="/" Toinen mahdollisuus on valita dokumenttielementti match=”filmikirjasto"

15 Entäs jos halutaan tehdä taulukko? Tässä luodaan ensin taulukko ja sitten lähdetään silmukkarakenteeseen jne… Jokaiselle elementille omansa FilmiOhjaajaKirjoittaja Ensi-iltaOscar Blues Brothers 2000 John LandisDan Aykroyd James Belushi 1.1.2000false Sinuhe Epyktiläinen Edvin LaineMika WaltariBo Carpelan 1.1.1959true

16 Valmis XSLT, osa 1 Nimi Ohjaaja Kirjoittaja Ensi-ilta Oscar

17 Valmis XSLT, osa 2

18 Hugo Bernier’s XSLT Here are some tricks for trying to solve XML Transformation issues: Start your XML file with You can then double-click on your XML file and view it in your browser. If the transformation works, you'll see HTML.

19 Hugo Bernier’s XSLT 2 Start from the root: When I design XSL files, I always start with the root node (/) and work down the tree. In other words, I'll start with: It works! then, I change the template's match parameter to get to the node I want... It still works!...and continue doing so until I get the results I want. Doing so will not only avoid you lots of headaches, but could result in significant performance improvements.

20 Hugo Bernier’s XSLT 3 Add HTML: to get the pretty results I want Add Code: now that I got the XSLT I want, producing the output I want, I'll add the code to display it (in your case, the ASP file). By using the browser's ability to display XML/XSL Tranformations, I can produce fancy XSL without needing a fancy development tool.

21 Hugo Bernier’s XSLT 4 Add Parameters: one last bit I'll do is add XSL parameters. For example, you could use one XSLT file with a language parameter, and use an xsl:choose statement to display the right results... I'll also create XSLT Extensions, which are bits of compiled code (e.g. C#) that get passed as parameters to the XSLT document. For example, you could have an XSLT Extension that formats dates, or calculate the answer to life, the universe, and everything.

22 XPathin perusteet XPath on se systeemi, joka sallii XML- puussa kiipeilyn. XPath ja XSLT ovat molemmat W3C:n luomia standardeja, mutta käytännössä on vaikea erottaa niitä toisistaan Periaatteessa XPath vie jonnekin ja siellä perillä XSLT tekee jotakin. Käsite ’konteksti’ tarkoittaa sitä solmua tai elementtiä XML-puussa, jota käsitellään Konteksti xsl:template match=”/” on siis juurielementin käsittelyä varten

23 XPathia lisää Sijaintipolulla tarkoitetaan XML- elementin kontekstia XML-puussa Aloitetaan juuren kontekstista ”/” Sijaintipolun voi koodata joko lyhennettynä tai lyhentämättömänä Lyhennetty on helpompi ja yleisempi.

24 XPath 3 Jos esimerkissä lisätään uusia tasoja xml- rakenteeseen, esim. … Esimerkin for-each, filmikirjasto/filmi lakkaa toimimasta. Lyhentämätön sijaintipolku olisi Lyhennetty on

25 Kertaukseksi siis polusta: ”element” valitsee kaikki kontekstisolmun lapset, jotka kuuluvat elementtiin ”element” ”/” valitsee juurisolmun kontekstin ”/filmi” valitsee juurisolmun lapsen ”filmi” ”filmikirjasto/filmi” valitsee kaikki filmikirjasto -elementin filmi -lapset ”//filmi” valitsee filmi -elementin, oli se sitten kuinka syvällä xml:n rakenteessa tahansa ”Filmikirjasto//filmi” valitsee filmi -elementit, riippumatta siitä, montako tasoa on filmikirjasto - ja filmi -elemettien välissä.

26 Axis ja Predicate Axis on luettelo solmuista kontekstin varrella Predicate on axisin määre, jolla voi valita solmuja jonkin arvon perusteella LausekeLyh.Kommentti self.Valitsee kontekstin solmun. Esimerkki: Jos kontekstisolmussa on tekstisisältö, se sijoitetaan tähän attribute @Valitsee kaikki solmun attribuutit. Esimerkki: Valitsee PERSONID -attribuutin. expression [ ]Valitsee solmun predikaatin arvon perusteella: Esimerkki: filmi[name=’Blues Brothers’] Esimerkki: filmi[position()=’2’] toinen filmi Esimerkki: filmi[starts-with=(name, ’B’]

27 Node-set Node-sets eli solmujoukot saadaan kyselyistä filmi[kirjoittaja=”Mika Waltari" and kirjoittaja=”Bo Carpelan"] and, or Looginen ja sekä tai = Yhtäsuuri != Erisuuri >, >= Suurempi, suurempi tai yhtä suuri kuin <, <= Pienempi, pienempi tai yhtä suuri kuin MUISTA kirjoittaa -merkki > XSL-tiedostossa. +, -, *, div Lisää, vähennä, kerro, jaa mod Jakojäännösjako | Kahden solmujoukon unioni

28 … lisää … Count-funktio laskee solmujoukon ehdot täyttävien solmujen määrän, eli alla niiden filmien määrän, joilla elementti oscar on tosi Jos tässä konteksti on filmikirjasto, voidaan sanoa

29 Position Position palauttaa solmun paikan suhteessa kontekstiin Kätevä esim. jos on lisättävä solmu tiettyyn kohtaan elementissä tai varmistettava onko kontekstin solmu ylemmän tason elementin viimeinen solmu (eli onko position() sama kuin last(). tuottaa 1.Blues Brothers 2.Blues Brothers 2000 3.Sinuhe Epyktiläinen

30 Position Position palauttaa solmun paikan suhteessa kontekstiin Kätevä esim. jos on lisättävä solmu tiettyyn kohtaan elementissä tai varmistettava onko kontekstin solmu ylemmän tason elementin viimeinen solmu (eli onko position() sama kuin last(). tuottaa 1.Blues Brothers 2.Blues Brothers 2000 3.Sinuhe Epyktiläinen

31 Substring Substring palauttaa halutun määrän merkkejä elementistä tuottaa Blues B Sinuhe XPath-funktioita on vaikka kuinka paljon lisää.

32 XSLT: value-of xsl:value-of tuottaa elementin arvon muunnoksen tulostettavaan muotoon xsl:apply-templates tulostaa myös tekstiä, mutta se tutkii myös kontekstin node-setin jos ei erikseen kielletä niin tekemästä xsl: value-of tuottaa vain kyseisen elementin arvon tulostuksen. Tekstiä voidaan myös tehdä : - kirjoittamalla tekstiä tyylisivulle: tämä on tekstiä - -

33 XSLT: for-each Lykkää taulukkoon omiin soluihinsa kaikki tiedot Taulukon avaus ja sulkeminen tehdään juurisolmun apply-templatessa

34 XML ja CSS liittää XML-tiedostoon CSS-tiedoston FILMI { font-family:sans-serif;} NIMI { display:block; Font-size:2em; Text-align:center} OHJAAJA{ Display:block; Font-size:1.1em; Padding:0.5em; Text-align;center; } jne Tuottaa aivan normaalin HTML CSS-tyylin mukaiset esitykset

35 Backup

36 XSLT: value-of=”.” xsl:value-of=”.” tuottaa kontekstin elementin sisällön. Jos elementillä on lapsia, ne tulostetaan myös tuottaa kaikki tekstiarvot peräkkäin.


Lataa ppt "T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 4 Heikki Hietala HAAGA Ammattikorkeakoulu Helsingin liiketalousinstituutti Kevät 2010."

Samankaltaiset esitykset


Iklan oleh Google