Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Hernyák Zoltán XSLT transzformációk.

Hasonló előadás


Az előadások a következő témára: "Hernyák Zoltán XSLT transzformációk."— Előadás másolata:

1 Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu XSLT transzformációk

2 XML - XSLT Extensible Style Sheet Language Transformation XSLT Ez egy ”programozási nyelv” XML-ben van a forráskód feldolgoz egy XML filet eredménye egy újabb HTML, CSS, XLS, XML file

3 XML - XSLT Kell egy „futtató” program hozzá (xslt feldolgozó) - Xalan (Java alapú) http://www.apache.org - Saxon (C# alapú) http://saxon.sourceforge.net/ transform.exe -xsl:person_templ.xls -s:person.xml -s: az adatokat tartalmató xml file -xsl: az xslt transzformációs program A program ”outputja” a transzformáció eredménye

4 XML névterek Az XML elemeket névterekbe lehet rakni Több XML esetén az azonos nevű elemeket így lehet egymástól elkülöníteni Egy XML-en belül is hasznos, ha azonos nevű elemeknek más-más lehetséges tartalmi leírást adunk Első lépés: definiálni kell a névteret Második lépés: használni kell a névteret <java xmlns:java=”http://www.sun.com/java” xmlns:delphi=”http://www.borland.com/delphi”> …. <java xmlns:java=”http://www.sun.com/java” xmlns:delphi=”http://www.borland.com/delphi”> ….

5 XML - XSLT Jane Doe Fluffy Jane Doe Fluffy I found a person element! I found a person element! Az XSLT processor az xls névtér elemeit dolgozza fel

6 XML - XSLT …. …. Az XSLT file ezzel kezdődik Innen ismeri majd fel a feldolgozó program mire számítson

7 XML - XSLT Egy vagy több template van benne Egy ilyen template tartalma kiíródik, ha az XML file beolvasása közben egyezést talál a feldolgozó Template-k nem egymásba ágyazhatóak! I found a person element! I found a person element!

8 XML - XSLT Jane Doe Fluffy Jane Doe Fluffy ---- person ----- ---- person ----- Ebben a formában az apply- templates kiírja a tag-ekhez tartozó értékeket

9 XML - XSLT -- A Person -- Name: Pet: -- A Person -- Name: Pet:

10 XML - XSLT … … Output-method = text -> nem írja ki az xml fejlécet Output-method = html ->html kimenetet produkál Output-method = xml -> XML kimenetet produkál strip-space: a felsorolt elemek között eltávolítja a white-space-eket preserve-space: … megtartja a white space-eket (def.)

11 XML - XSLT Készítsünk ilyet!

12 XML - XSLT

13 Meg kell írni a template-t az elemekre

14 XML - XSLT Az apply-templates feldolgozza a közbeeső elemeket … -t ki lehet írni XHTML kötelező (a tag-eket le is kell zárni!)

15 XML - XSLT HTML tagokat tudunk beépíteni az outputba a megfelelő helyre

16 XML - XPATH Leíró technika, elemeket azonosít egy XML-en belül A gyökér elemet / jel szimbolizálja /people/person/name - minden „name” elemet kiválaszt a /people/person-n belül

17 XML – XPATH szabályok nodename - minden elem kiválasztása, akinek a szülője az adott nevű node / - kiindulás a gyökérelemből // - kiválasztja az aktuális elemből kiinduló minden elemet, bármely mélységbe. aktuális elem kiválasztása.. szülő elem kiválasztása @ attribútum-kiválasztás

18 XML - XPATH person - minden elem kiválasztása, akinek a szülője „person” /people/person/name - minden „name” elemet kiválaszt a /people/person-n belül person//name - minden name kiválasztása, akinek a szülője „person” //name - minden „name” elemet kiválaszt az XML-en belül //pet/@breed - a pet elemek breed attribútumai //@* - minden attribútumot kiválaszt //@species - minden species attribútumot kiválaszt

19 XML - XPATH Mivel gyakori, hogy egy Xpath útvonal több elemet is kiválaszt, de ezekből csak egy kell – prédikátumok kellenek a további azonosításhoz… //person[1] - az első találat //person[last()] - utolsó találat //person[last()-1] - utolsó előtti találat //pet[.=‘Fluffy’]. szimbolizálja az aktuális elemet kiválasztja azokat az elemeket, amelyeknek az értéke ‘Fluffy’ //pet[.=‘Fluffy’]/.. kiválasztja a szülő elemét, a ‘Fluffy’ értékű node-nak //name[contains(.,’Jane’)] minden „name” elemet, amelyben szerepel „Jane”

20 XML - XPATH //pet[@breed] - az összes pet elem, amelynek van breed attr-a //pet[@breed=‘collie’] - az összes pet elem, amelynek van breed-ke amelynek értéke „collie” //pet[@breed=‘collie’]/.. a szülő elemek, amelyeknek van collie breed-jük //pet[@species=‘cat’] | //pet[@species=’dog’] az elemek melyek vagy cat-ok vagy dog-ok

21 XML - XSLT --- PEOPLE – --- PEOPLE – A match is egy XPATH leírás Ezen találat csak a fenti útvonalon talált person-okra illeszkedik rá Gyökér elemre illeszkedő template

22 XML - XSLT Name: (with address) Name: Name: (with address) Name: Ha van neki „address” property-je, akkor felső szabály szerint íródik ki, Ha nincs neki, akkor az alsó A sorrend nem számít az xsl-en belül

23 XML - XSLT Name: (with address) Name: Name: (with address) Name: Ha van neki „address” property-je, akkor felső szabály szerint íródik ki, Ha nincs neki, akkor az alsó A sorrend nem számít az xsl-en belül

24 XML – XSLT tengelyek ancestor minden ős (felfelé rekúrzívan) ancestor-or-self saját maga és minden őse attribute az aktuális node összes attribútuma child az aktuális node összes gyerek node-ja descendant minden gyerek node (lefelé rekúrzívan)

25 XML – XSLT tengelyek following az aktuális node bezáró tagja után _minden_ following-sibling az akt.node után következő minden testvér namespace az akt.node minden névtér node -ja parent az őse az akt.node-nak preceding a megelőző tartalom (akt.node előtti tartalom) preceding-sibling node előtti összes testvér self saját maga

26 XML – XSLT tengelyek child::book minden „book” ami gyerekeleme az akt.node-nak child::* az akt.node minden gyerekeleme descendant::book az akt.node alatt bárhol szereplő „book”-k ancestor::book felettünk bárhol szereplő „book”-k child::*/child::price 2 szinttel alattunk lévő „price” elemek //pet[@breed=’calico’]/parent::* minden pet element, amelynek van „breed” attribútuma, amely „calico” értékű

27 XML - XSLT Elem értékének lekérése: value-of Az aktuális node alatti gyerek elemek közül a name értéke Az aktuális node „breed” attribútumának értéke

28 XML - XSLT XSLT transzformációban alkalmazni a value-of -t Pet: Species: Breed: Pet: Species: Breed:

29 XML - XSLT @*minden attribútum kiválasztása name() megadja az attribútum nevét : :

30 XML - XSLT … szöveg kiiírás … … szöveg kiiírás … Feltételes output készítése

31 XML - XSLT Feltételes output készítése

32 XML - XSLT Készítsünk el egy DVD nyilvántartó XML filet. Egy DVD-t jellemez a címe, kiadás éve, ára. A DVD kategóriáját adjuk meg attribútum formájában (akció|zene|rajzfilm). Ezen XML file alapján készítsünk el egy HTML outputot, ahol a DVD címe legyen pirossal írva, ha az akciófilm, egy DVD film információi egy sorba kerüljenek. Készítsünk el egy CSV kimenetet is, vesszővel tagolt text file, melyet Excelben be lehet olvasni.


Letölteni ppt "Hernyák Zoltán XSLT transzformációk."

Hasonló előadás


Google Hirdetések