English | Français | Deutsch | >> Magyar << | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Tartalom << | Elem index

Bevezetés

Oldal 1 Az XSL segítségével szabadon módosíthatsz bármilyen forrás fájlt. Az XSLT stíluslap és az XSLT stíluslap kül?nféle kimenetet eredményez ugyanabból a forrás fájlból.
Oldal 2 Minden XSL-Stíluslapot az xsl:stylesheet elemmel kell kezdeni. A version='1.0' attribútum a felhasznált XSL(T) specifikáció verzióját határozza meg. Ez a példa a lehet? legegyszer?bb stíluslapot mutatja be. Mivel nem tartalmaz semmiféle információt, az alapértelmezett feldolgozás van alkalmazva.
Oldal 3 Az XSL feldolgozók elemzik az XML forrást megfelel? sablon szabályt keresve. Amennyiben van ilyen, az adott sablonon belül megadott instrukciók kerülnek alkalmazásra.
Oldal 4 Az eredeti elemek tartalmai két alapvet? módon nyerhet?ek ki. Az XSLT stíluslap az xsl:value-of módszert használja. Ebben az esetben az elemek konkrét értékei vannak használva, bármilyen további feldolgozás nélkül. Az xsl:apply-templates instrukció az XSLT stíluslap példában kül?nb?z?. A feldolgozó további feldolgozást végez a megadott elemeken, melyekhez sablon van megadva.

Sablonok

Oldal 5 Az XSL feldolgozók elemzik az XML forrást megfelel? sablon szabályt keresve. Amennyiben van ilyen, az adott sablonon belül megadott instrukciók kerülnek alkalmazásra.
Oldal 6 Az XML dokumentum azon részeit, melyekre a sablonok alkalmazásra kerülnek, az elérési útvonalak segítségével lehet meghatározni. A szükséges szintaxis leírása az XPath specifikációban található meg. Egyszer? esetekben ez nagymértékben hasonlít a fájlrendszereknél használt elérési útvonalakra. ( XSLT stíluslap )
Oldal 7 A feldolgozás mindig azon sablonnal kezd?dik, mely a "/" elemhez illeszkedik (azaz match="/"). Ez megfelel a gy?kér elemnek (azon elem, melynek egyetlen gyereke maga a dokumentum elem, a mi esetünkben "source"). Sok stíluslap azonban nem tartalmazza k?zvetlenül ezt a sablont. Amennyiben ez a sablon nincs k?zvetlenül megadva, a k?zvetett sablon kerül felhasználásra (amelyik egyedül az instrukciót tartalmazza). Ennek az instrukciónak a jelentése: dolgozd fel az aktuális elem minden gyerekét, a sz?veges elemeket is beleértve. Hasonlítsd ?ssze az XSLT stíluslap és az XSLT stíluslap példákat. Ha egy adott elemhez létezik sablon, nincsen alapértelmezett feldolgozás ( XSLT stíluslap ). Amennyiben egy adott elem leszármazottait is szeretnéd feldolgozni, egyenként kell kérned azok sablonjainak feldolgozását ( XSLT stíluslap ).
Oldal 8 Egy sablon t?bbféle elérési utat is kombinálhat, az ilyen elérési utakat "|" jellel kell elválasztani ( XSLT stíluslap ). A "*" minden lehetséges találatot kiválaszt. Hasonlítsd ?ssze az XSLT stíluslap példát az XSLT stíluslap példával.
Oldal 9 Az "//" gyakran el?fordul elérési utakban. Amikor egy elérési út elején van használva, a jelentése: minden megadott típusú elem kijel?lése az adott dokumentumban ( XSLT stíluslap ). Egyéb helyeken használva az elérési utakban: minden elem kijel?lése az elérési útvonal els? részében megadott elemen belül ( XSLT stíluslap ).
Oldal 10 A mode attribútum segítségével egy elem t?bbsz?r is feldolgozható, minden esetben másféle kimenetet eredményezve. Az XSLT stíluslap példában az egyik "mode" nem létezik.
Oldal 11 Elég gyakran fordul el?, hogy egyszerre t?bb sablon is alkalmazható az XML forrás egy-egy elemére. Ebben az esetben el kell d?nteni, melyik lesz használva. Ez a prioritási sorrend a priority attribútummal határozható meg. Ha ez az attribútum nincs meghatározva, a prioritás t?bbféle szabály szerint kerül megállapításra. Az XSLT stíluslap és az XSLT stíluslap példák sablonjai eltérnek prioritás szempontjából. Az XSLT stíluslap az alapértelmezett m?k?dést illusztrálja a priority attribútum hiánya esetén. A CCC sablonnak alacsonyabb a prioritása, mint a CCC/CCC sablonnak, mivel az kevésbé specifikus. Hasonlítsd ?ssze az XSLT stíluslap és az XSLT stíluslap példákat. A CCC sablonnak alacsonyabb a prioritása, mint a CCC/CCC vagy a AAA/CCC/CCC sablonoknak, ez utóbbi kett?nek azonban azonos a prioritása. Ilyen esetben egy XSLT feldolgozó jelzi a hibát; amennyiben ezt nem teszi meg, akkor az adott esetben alkalmazható sablonok k?zül azt választja ki, mely legutolsóként fordul el? a stíluslapon belül. Az XSLT stíluslap példában a kevésbé specifikus "*" alacsonyabb prioritással bír, mint a CCC. A kiszámított prioritások értéke -0.5 és 0.5 k?z?tt lehet. Az XSLT specifikáció b?vebb részletekkel szolgál.

Attribútumok

Oldal 12 Az attribútumok hasonló módon érhet?ek el, mint az elemek. Figyeld meg a "@" jelet az attribútumok nevei el?tt.
Oldal 13 Az attribútumok ugyanúgy feldolgozhatóak, mint az elemek.
Oldal 14 Az alapján is kiválaszthatóak az elemek, hogy rendelkeznek-e a megadott attribútummal. Az XSLT stíluslap mellékeli, míg az XSLT stíluslap elvonja a megadott elemeket, ha a megadott attribútum jelen van.

Tengelyek

Oldal 15 A tengelyek (axis) nagyon fontos szerepet t?ltenek be az XSLT használatakor. B?vebb részletekért lásd az XSLT referenciát. Hasonlítsd ?ssze: child tengely ( XSLT stíluslap ), descendant tengely ( XSLT stíluslap ), parent tengely ( XSLT stíluslap ), ancestor tengely ( XSLT stíluslap ), following-sibling tengely ( XSLT stíluslap ), preceding-sibling tengely ( XSLT stíluslap ), following tengely ( XSLT stíluslap ), preceding tengely ( XSLT stíluslap ), attribute tengely( XSLT stíluslap ), namespace tengely ( XSLT stíluslap ), self tengely ( XSLT stíluslap ), descendant-or-self tengely ( XSLT stíluslap ), ancestor-or-self tengely ( XSLT stíluslap ).
Oldal 16 Ebben a példában minden tengely használva van.
Oldal 17 A child:: tengely használata nem szükséges elérési útvonalakon belül, mivel ez az alapértelmezett tengely. Az attribute:: tengely r?vidíthet? így: @. A // jel a /descendant-or-self:: r?vidítése, míg a . jel a self:: és a .. jel a parent::. r?videbb formája

Ismétlés és rendezés

Oldal 18 Az xsl:for-each instrukció egy sablont tartalmaz, mely a select attribútum által kiválasztott minden elemre alkalmazásra kerül.
Oldal 19 Az xsl:for-each ( XSLT stíluslap és XSLT stíluslap ) vagy az xsl:apply-templates segítségével kiválasztott elemek ( XSLT stíluslap ) rendezhet?ek. A rendezés sorrendjét az order attribútum szabja meg. Az XSLT stíluslap n?vekv?, míg az XSLT stíluslap cs?kken? sorrendben rendez.
Oldal 20 Az XSLT stíluslap sz?veges, az XSLT stíluslap numerikus alapon rendez. Figyeld meg a lényeges kül?nbséget. A 2-es szám az 1-es után k?vetkezik az abc-ben, ezért a 2-es sz?veges módban a 10-es után k?vetkezik.
Oldal 21 Az XSLT stíluslap a nagybet?s, míg az XSLT stíluslap a kisbet?s karaktereket rendezi els?ként.

Elemek és attribútumok létrehozása

Oldal 22 Az xsl:element feldolgozás k?zben generál elemeket. Az XSLT stíluslap ezt a lehet?séget alkalmazza, míg az XSLT stíluslap ugyanazt a hatást éri el egy kissé más, nehézkesebb módon.
Oldal 23 Az xsl:attribute a feldolgozás k?zben generál elemeket. Attribútumot generál azon elemen belül, amelyikben el?fordul.
Oldal 24 A copy és a copy-of instrukciók az elemek másolására szolgálnak. A copy elem csak az aktuális elemet másolja, annak gyerekei és attribútumai nélkül, míg a copy-of mindent másol.
Oldal 25 Az xsl:copy elemben szerepelhet az use-attribute-sets attribútum. Ilyen módon szabályozhatóak a másolt elem attribútumai. Az XSLT stíluslap nem a várt módon m?k?dik (az use-attribute-sets attribútumot a name függvénnyel használva), mivel azok az attribútumokban található kifejezések, melyek névszerinti XSLT objektumokra mutatnak, nem kerülnek feldolgozásra.

Feltételes feldolgozás

Oldal 26 Az xsl:if instrukció feltételes feldolgozást tesz lehet?vé. Az XSLT stíluslap az xsl:for-each tipikus használatát mutatja be, az egyes elemekhez sz?veget adva. Elég gyakran fordul el?, hogy nem akarsz sz?veget adni az utolsó elemhez. Az xsl-if instrukció nagyon hasznos ebben az esetben. ( XSLT stíluslap )
Oldal 27 Az xsl:choose elem t?bbféle lehet?ség k?zti választásra szolgál.
Oldal 28 Hogyan találjuk meg azt a sz?veget, amelyik számmal kezd?dik.

Számok generálása és formázása

Oldal 29 Az XSLT stíluslap az xsl:number elem alapértelmezett viselkedését mutatja be. Az egyes chapter elemek számozása azok aktuális pozíciója alapján t?rténik meg. Minden egyes szint a t?bbit?l függetlenül kerül számozásra. A level attribútumot multiple értékre állítva az XSLT stíluslap még természetesebb számozást eredményez.
Oldal 30 Az xsl:number formázott számokat állít el? a kimeneten. A formátumot a format attribútum határozza meg. Az attribútum a formátum meghatározásával kezd?dik, melyeket a szeparátor karakterek k?vetnek. Figyeld meg a kül?nb?z? stíluslapokat a fentiek megértéséhez.
Oldal 31 Az XSLT stíluslap és az XSLT stíluslap t?bbszint? számok formázására mutat példát.

Változók

Oldal 32 Az XSLT stíluslap és az XSLT stíluslap az xsl:variable kül?nféle értékadási lehet?ségeit példázza, míg az XSLT stíluslap és az XSLT stíluslap az xsl:param értékadását.
Oldal 33 Egy stíluslap t?bb változót is tartalmazhat ugyanazon a néven. Az XSLT stíluslap bemutatja, hogyan lehet egy globálisan meghatározott változó értékét egy ugyanolyan nev? helyi változónak megadni. Az XSLT stíluslap egy helytelen megk?zelítést mutat be. A helyi változó értékének figyelembevétele az xsl:when elem határáig terjed. A sablon t?bbi része csak a globális változó értékét veszi figyelembe.
Oldal 34 A sablonoknak t?rtén? paraméter átadás az xsl:with-param elem segítségével t?rténhet meg. Amennyiben a sablon tartalmaz egy xsl:param elemet, melynek a neve megegyezik az xsl:with-param name attribútumával, ez megkapja azt az értéket. Az XSLT stíluslap egy tipikus példát mutat be. Amennyiben egy változót szeretnél átadni, ezt definiálnod kell az xsl:param elem segítségével. Nézd meg az XSLT stíluslap példát, amely a helytelen módszert mutatja be.
Oldal 35 Egy változó az eredmény fa egy darabjának tárolására alkalmas. Egy ilyen eredmény fa darabon végrehajtható m?veletek a normál elemkészleten végrehajtható m?veletek egy sz?kebb készlete. Egy m?velet akkor engedélyezett egy eredmény fa darabon, amennyiben az a m?velet egy normál sztring értéken is végrehajtható lenne (ez a m?velet persze magában foglalhatja a sztring számmá vagy boolean értékké konvertálását). Azaz t?bbek k?z?tt a /, //, és a [] operátorok használata nem engedélyezett egy eredmény fa darabon. Amikor egy m?velet kerül végrehajtásra egy eredmény fa darabon, ez úgy t?rténik meg, mintha a m?velet a megfelel? elemkészleten lenne végrehajtva. Hasonlítsd ?ssze az XSLT stíluslap és az XSLT stíluslap példákat.
Oldal 36 íme egy lényeges kül?nbség a változók értékeinek megadásánál.

Numerikus kalkulációk

Oldal 37 A number() függvény a kapott argumentumot számmá alakítja. Az XSLT stíluslap sztringek konverzióját mutatja be, az XSLT stíluslap pedig a boolean típusú true és false értékekét.
Oldal 38 Az ?sszeadás, kivonás és szorzás a máshol is megszokott szintaxissal t?rténik ( XSLT stíluslap ). Az osztás szintaxisa viszont meglehet?sen egyedi. Az osztásjel / az elérési útvonalakban van használva, ezért helyette a div használható ( XSLT stíluslap ). A mod operátor egy maradékos osztás maradékával tér vissza. ( XSLT stíluslap )
Oldal 39 A sum() függvény ?sszesíti az ?sszes kijel?lt elemekben található számokat. Az XSLT stíluslap minden számot ?sszesít, az XSLT stíluslap csak a páratlanokat.
Oldal 40 A ceiling(), floor() és round() függvények lebeg?pontos számokat kovertálnak egész számokká az alább látható módon.
Oldal 41 A string() függvény az argumentumának értékét sztringgé konvertálja. Ez a függvény általában nincs használva stíluslapokban, független attól, hogy máshol gyakran alkalmazzák. Az XSLT stíluslap számok sztringgé alakítását mutatja be. Figyeld meg a 0-val t?rtén? osztás eredményét.
Oldal 42 Annak tesztelése, hogy egy elem értéke szám-e.

Boolean műveletek

Oldal 43 Az XSLT stíluslap esetében szerepl? sztringek a boolean() függvény argumentumai. Egy sztring akkor és csak akkor true, azaz igaz, ha a hossza nem nulla. Az XSLT stíluslap esetében a sz?veget számmá konvertáljuk, majd ezután alkalmazzuk azt a boolean() függvényben. Az XSLT stíluslap a "0" értékét hasonlítja ?ssze számként és sztringként. Az XSLT stíluslap elem-készleteket használ a boolean() függvény argumentumaként.
Oldal 44 A not() függvény true értékkel tér vissza, ha az argumentum hamis, és false értékkel egyéb esetben.
Oldal 45 A true() és false() függvények hasznosak, amikor bizonyos feltételeket kell tesztelni a programozás során.
Oldal 46 A lang() function true vagy false értékkel tér vissza, attól függ?en, hogy az adott elem esetében megadott xml:lang attribútum értéke megegyezik, vagy egy al-nyelve a függvény attribútumaként megadott nyelvnek. Az adott elem nyelvét az adott k?rnyezetben megadott xml:lang attribútum határozza meg, vagy amennyiben az adott k?rnyezetben ez nincs meghatározva, akkor a legk?zelebbi ?s xml:lang attribútumának értéke kerül megvizsgálásra, amennyiben van ilyen. Amennyiben egyáltalán nincs ilyen attribútum, a függvény false értékkel tér vissza. Amennyiben van ilyen attribútum, a lang() true értékkel tér vissza, ha az argumentum értéke megyegyezik az attribútum értékével, vagy amennyiben valamiféle el?tagjával - például az adott argumentum el?tag nélküli értékével, vagy annak kis-nagybet?s változatával.

Sztring műveletek

Oldal 47 A string() függvény az argumentumának értékét sztringgé konvertálja. Ez a függvény általában nincs használva stíluslapokban, független attól, hogy máshol gyakran alkalmazzák. Az XSLT stíluslap számok sztringgé alakítását mutatja be. Figyeld meg a 0-val t?rtén? osztás eredményét.
Oldal 48 A concat() függvény az argumentumok ?sszef?z?tt értékével tér vissza.
Oldal 49 A starts-with() függvény visszatérési értéke true, amennyiben az els? argumentum sztring a második argumentum sztringgel kezd?dik, egyébként false értékkel tér vissza. A contains() függvény értéke true, ha az els? sztring tartalmazza a másodikat, egyébként az értéke false.
Oldal 50 A substring-before() függvény az els? argumentumként megadott sztring azon rész-sztringjével tér vissza, mely megel?zi, míg a substring-after() függvény azon rész-sztringjével tér vissza, mely k?veti a második argumentumként megadott sztring els? el?fordulását az els? argumentum sztringen belül. A substring() függvény az els? sztring azon rész-sztringjével tér vissza, mely a második argumentumként megadott pozíciónál kezd?dik, a hossza pedig a harmadikként megadott argumentum. Ha a harmadik argumentum nincs megadva, akkor a második argumentumként megadott pozíciótól kezdve a sztring végéig tart a visszakapott rész-sztring. A számolás 1-el kezd?dik. ( XSLT stíluslap ). Az XSLT stíluslap azokat a helyzeteket szimulálja, ahol az argumentum a tartományon kívül esik, vagy értéke nem egész szám. A visszakapott rész-sztring azokat a karaktereket tartalmazza, melyek esetén a karakter pozíciója nagyobb vagy egyenl? a második argumentummal, és amennyiben a harmadik argumentum meghatározott, akkor kisebb mint a második és harmadik argumentum ?sszege.
Oldal 51 A string-length() függvény a sztring karaktereinek számával tér vissza. A normalize-space() függvény az argumentumként megadott sztring normalizált változatával tér vissza, azaz levágja az elején és a végén található felesleges szók?z?ket valamint az egynél t?bb szók?zt lecseréli egy szók?zre.
Oldal 52 A translate() függvény az els? argumentumként megadott sztringgel tér vissza, melyben a második argumentumként megadott sztring karakterei a harmadik argumentumként megadott sztring megfelel? pozíciójú karaktereivel vannak lecserélve. Ha egy karakter egynél t?bbsz?r fordul el? a második argumentum sztringben, akkor az els? pozíció alapján t?rténik a megfelel? csere-karakter meghatározása. Ha a harmadik argumentum sztring hosszabb, mint a második argumentum sztring, akkor a felesleges karakterek nem kerülnek feldolgozásra.

Elem készlet műveletek

Oldal 53 A position() függvény egy számmal tér vissza, amely egyenl? az adott k?rnyezet pozíciójával míg a last() függvény által visszaadott szám az adott kifejezés által meghatározott k?rnyezet méretével egyenl?. Az XSLT stíluslap ezen függvények használatát mutatja be t?bbféle k?rnyezetben. Az XSLT stíluslap a rendezett és rendezetlen xsl:for-each elemeket hasonlítja ?ssze.
Oldal 54 A count() függvény az argumentumban megadott elemkészlet elemeinek számával tér vissza.
Oldal 55 Az id() függvény az elemeket azok egyedi azonosítója (ID) alapján választja ki. Az XSLT stíluslap ennek egyszer? felhasználását mutatja be. Figyelmesen tanulmányozd át az XSLT stíluslap példát. A title elem tartalma nem sz?gletes zárójelben "[]" kerül megjelenítésre, mivel a DTD-ben annak id attribútuma CDATA-ként van meghatározva, nem pedig ID-ként. T?bb id is el?állítható egyszerre ( XSLT stíluslap ).
Oldal 56 Egy példa az id() függvény használatára.
Oldal 57 A name(), local-name(), és a namespace-uri() függvények segítségével gy?jthet?k információk az elemekr?l, attribútumokról és névterekr?l.

Kimenet

Oldal 58 Az xsl:output elem a stíluslap fejleszt?k számára lehet?vé teszi, hogy meghatározzák, milyen formában szeretnék az eredmény fát megjeleníteni a kimeneten. Ha egy XSLT feldolgozó az eredmény fát jeleníti meg, ezt az xsl:output elemben meghatározott módon kell megtennie; habár ez nem k?vetelmény. Az xsl:output elem csakis fels?-szint? elemként jelenhet meg. Az XSLT stíluslap kimenete html, az XSLT stíluslap példáé pedig xml. Figyeld meg, hogy az üres tagok milyen formában kerülnek a kimenetre.
Oldal 59 Az xml:output elem hiánya esetén az a alapértelmezett kimeneti metódus az xml ( XSLT stíluslap ), de amennyiben a kimenet dokumentum elemének a neve html (ilyen formában, kis-nagybet? érzékenység figyelembevételével), akkor a html metódus van használva ( XSLT stíluslap ).
Oldal 60 A html kimeneti metódus nem állít el? lezáró-tagot a HTML specifikációban megadott elemek részére. A html kimeneti metódus nem hajt végre eszképelést a script és a style elemeken belül (tekintsd meg a k?zépen alul található ablak forrását a b?ngész?dben). Ezt hasonlítsd ?ssze az XSLT stíluslap példával, b?vebb részletekért pedig lásd az XSLT specifikációt.
Oldal 61 Az encoding attribútum a használni kívánt kódolást határozza meg. A html kimeneti metódus k?zvetlen a HEAD elem után egy megfelel? META elemet hoz létre, mely tartalmazza a használt kódolást. Az XSLT stíluslap példa kimenete UTF-8, az XSLT stíluslap példáé UTF-16, és az XSLT stíluslap példáé pedig Cp1250. Az XSLT stíluslap példánál nézd meg a b?ngész?ben a k?zépen alul látható ablak forrását. Az xml forrás olyan karaktereket tartalmaz, melyek nem részei a meghatározott karakterkészletnek, ezért azok eszképelésre kerülnek.
Oldal 62 A text kimeneti metódus az eredmény fa minden elemének sz?veges tartalmát jeleníti meg a dokumentum sorrend alapján bármiféle eszképelés nélkül. Nézd meg a forrást a b?ngész?n belül a kimenet megtekintéséhez.

Másolás

Oldal 63 A copy és a copy-of instrukciók az elemek másolására szolgálnak. A copy elem csak az aktuális elemet másolja, annak gyerekei és attribútumai nélkül, míg a copy-of mindent másol.
Oldal 64 Az xsl:copy elemben szerepelhet az use-attribute-sets attribútum. Ilyen módon szabályozhatóak a másolt elem attribútumai. Az XSLT stíluslap nem a várt módon m?k?dik (az use-attribute-sets attribútumot a name függvénnyel használva), mivel azok az attribútumokban található kifejezések, melyek névszerinti XSLT objektumokra mutatnak, nem kerülnek feldolgozásra.

Egyéb kiegészítő műveletek

Oldal 65 A current() függvény azzal az elemkészlettel tér vissza, melynek egyetlen tagja az aktuális elem. Egy legküls?bb kifejezésként (ami olyan kifejezés, mely nem fordul el? más kifejezésen belül) az aktuális elem mindig megegyezik a k?rnyezeti elemmel. Sz?gletes zárójeleken belül "[]" azonban az aktuális elem általában eltér a k?rnyezeti elemt?l.
Oldal 66 A generate-id() függvény egy azonosítót (id) generál, mely megfelel az XML specifikációnak. Az XSLT stíluslap példa ezt a függvény használja, hogy a forrás XML minden elemének egyedi azonosítót (id) generáljon.

Stíluslapok kombinálása

Oldal 67 Más stíluslapok importálhatóak (xsl:import) vagy mellékelhet?ek (xsl:include) egy stíluslapon belül. Egy stíluslap importálása és mellékelése lényegében ugyanaz, kivéve hogy az importáló stíluslap definíciói és sablon szabályai els?bbséget élveznek az importált stíluslapéval szemben. Az XSLT stíluslap és az XSLT stíluslap példák importálva illetve mellékelve vannak a t?bbi stíluslapba.
Oldal 68 Az XSLT stíluslap importálja az XSLT stíluslap stíluslapot míg az XSLT stíluslap az XSLT stíluslap stíluslapot importálja.
Oldal 69 Egyéb példák az xsl:include és az xsl:import használatára.
Oldal 70 Használhatod az xsl:apply-imports elemet, hogy információt gy?jts egy importált stíluslapból, melynek a viselkedését megváltoztatod. Az XSLT stíluslap importálja az XSLT stíluslap stíluslapot és érvényteleníti annak sablonját. Az XSLT stíluslap importálja az XSLT stíluslap stíluslapot és megváltoztatja annak sablonját. Az xsl-apply-imports csak azon sablonok esetében érvényes, melyek az xsl:import segítségével lettek importálva, nem pedig az xsl:include használatával ( XSLT stíluslap ).
Oldal 71 Az importálási sorrend els?bbséget élvez a prioritási sorrenddel szemben. Nézd meg az XSLT stíluslap példát.