Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.