xslt tutorial xslt transformations elements with examples
V tomto výučbe je na príklade vysvetlené, čo je XSLT, jeho transformácie, prvky a použitie. Zahŕňa tiež dôležitosť XPath pre vývoj konverzného kódu XSLT:
Pojem „XSLT“ sa vytvára kombináciou dvoch slov, tj. „XSL“ a „T“, „XSL“ je krátka forma „Extensible Stylesheet Language“ a „T“ je krátka forma „transformácie“.
Takže v zásade je XSLT transformačný jazyk, ktorý sa používa na transformáciu / prevod zdrojových dokumentov XML na dokumenty XML alebo do iných formátov, ako je HTML, PDF, pomocou XSL-FO (formátovanie objektov) atď.
Čo sa dozviete:
Úvod do XSLT
Transformácia sa deje pomocou procesora XSLT (napríklad Saxon, Xalan). Tento procesor XSLT vezme jeden alebo viac dokumentov XML ako zdroj s jedným súborom XSLT, ktorý obsahuje napísaný kód XSLT, a dokumenty výstupu / výstupu sa vygenerujú neskôr, ako je znázornené na nasledujúcom diagrame.
Procesor XSLT analyzuje zdrojové dokumenty XML pomocou X-Path na navigáciu po rôznych zdrojových prvkoch od koreňového prvku po koniec dokumentov.
Odporúčané čítanie => Všetko, o čom potrebujete vedieť Cesta X.
Transformácia XSLT
Na začatie transformácie potrebujeme jeden dokument XML, na ktorom bude bežať kód XSLT, samotný súbor kódu XSLT a nástroj alebo softvér s procesorom XSLT (Na výučbu môžete použiť ľubovoľnú bezplatnú alebo skúšobnú verziu softvéru).
# 1) XML kód
Ďalej je uvedený zdrojový kód XML, na ktorom bude bežať kód XSLT.
Názov súboru: Books.xml
XSLT Programmer's Reference Michael Kay Wrox 4th Head First Java Kathy Sierra O'reilly 1st SQL The Complete Reference James R. Groff McGraw-Hill 3rd
# 2) Kód XSLT
Nižšie je uvedený kód XSLT, na základe ktorého sa spustí vo vyššie uvedenom dokumente XML.
Názov súboru: Books.xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Výsledný / výstupný kód
Nižšie uvedený kód bude vyrobený po použití kódu XSLT vo vyššie uvedenom dokumente XML.
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th 3741122298 Head First Java Kathy Sierra O'reilly 1st 9987436700 SQL The Complete Reference James R. Groff McGraw-Hill 3rd
# 4) Zobraziť výsledok / výstup vo webovom prehliadači
Knihy:
ID knihy | Názov knihy | Meno autora | Vydavateľ | cena | Vydanie |
---|---|---|---|---|---|
5350192956 | Referencia programátora XSLT | Michael Kay | Wrox | 40 dolárov | 4 |
3741122298 | Hlava prvá Java | Kathy sierra | O'reilly | 19 dolárov | 1 |
9987436700 | SQL Kompletná referencia | James R. Groff | McGraw-Hill | 45 dolárov | 3 |
Prvky XSLT
Aby sme porozumeli vyššie uvedenému kódu XSLT a fungujú, najskôr musíme porozumieť rôznym prvkom XSLT a ich atribútom.
# 1) ALEBO
Každý kód XSLT musí začínať koreňovým prvkom alebo
Atribúty:
- @ xmlns: xsl: Spája dokument XSLT so štandardom XSLT.
- @verzia: Definuje verziu kódu XSLT pre syntaktický analyzátor.
#dva)
Táto deklarácia definuje množinu pravidiel použitých na spracovanie alebo transformáciu vybraného vstupného prvku zdrojového dokumentu na definované pravidlá cieľového prvku výstupných dokumentov.
Podľa ich atribútov sú v zásade k dispozícii dva typy šablón:
i) Šablóna s menom: Keď prvok xsl: template obsahuje atribút @name, nazýva sa to Named Template.
Pomenované šablóny volá prvok xsl: call-template.
ii) Šablóna zápasu: Prvok xsl: template obsahuje atribút @match, ktorý obsahuje zodpovedajúci vzor alebo XPath použitý na vstupných uzloch.
Zhodné šablóny volá prvok xsl: apply-template.
Prvok xsl: template musí mať atribút @ match alebo atribút @name alebo oboje. Prvok xsl: template, ktorý nemá žiadny atribút zhody, nesmie mať žiadny atribút mode a atribút priority.
Napíšme vyššie uvedený XSLT (
do) Kód XSLT založený na šablóne zhody s. Nižšie uvedený žltý a sivý zvýraznený zmenený kód, ktorý prinesie rovnaký výstupný výsledok ako vyššie.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Zvýraznená oblasť nájdete na snímke obrazovky:
b) Kód XSLT založený na pomenovanej šablóne s. Nižšie uvedený žltý a sivý zvýraznený zmenený kód, ktorý prinesie rovnaký výstupný výsledok ako vyššie.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Zvýraznená oblasť nájdete na snímke obrazovky:
# 3)
Procesor vyhľadá a použije všetky šablóny, ktoré majú XPath definované v atribúte @select.
Atribút @mode sa tiež používa, ak chceme poskytnúť viac ako jeden spôsob výstupu s rovnakým vstupným obsahom.
# 4)
Procesor zavolá šablóny, ktoré majú hodnotu v atribúte @name (povinné).
prvok slúži na odovzdanie parametrov do šablóny.
najlepší softvér na obnovu zmazaných súborov
# 5)
Zadajte hodnotu reťazca / textu týkajúcej sa výrazu XPath definovaného v atribúte @select, ako je definované vo vyššie uvedenom kóde.
Takto získate hodnotu názvu knihy.
# 6): Opakovanie
Týmto sa spracujú pokyny pre každú sadu uzlov (xpath definovaná v atribúte @select (required)) v zoradenom poradí.
Vyššie uvedený kód znamená pre každú sadu uzlov sklad / kniha znamená:
/ obchod / kniha (1)
/ obchod / kniha (2)
/ obchod / kniha (3)
možno použiť aj ako podradenú položku xsl: for-each na definovanie poradia triedenia.
# 7): Podmienené spracovanie
Pokyny xsl: if sa spracujú iba v prípade, že boolovská hodnota atribútu @test bude pravdivá, inak sa inštrukcia nevyhodnotí a vráti sa prázdna sekvencia.
2'> Condition True: Count of books are more than two.
Výsledok: Pravdivá podmienka: Počet kníh je viac ako dve.
Tu je count () preddefinovaná funkcia.
# 8): Alternatívne spracovanie stavu
xsl: select majú viac prípadov pre rôzne podmienky, ktoré sú testované v atribúte @test prvkov xsl: when, testovacia podmienka, ktorá sa splní ako prvá medzi všetkými xsl: when, ktoré budú spracované ako prvé a existuje voliteľný xls: inak prvok, takže ak sa nesplní žiadny z testov stavu, bude sa brať do úvahy tento xsl: inak.
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
Výsledok: Pravdivá podmienka: Počet kníh je tri.
# 9)
xsl: copy funguje na kontextovej položke, t. j. ak je to uzol, skopíruje kontextový uzol do novo vygenerovaného uzla a nebude to kopírovať podradené prvky kontextového uzla. Z tohto dôvodu sa to nazýva plytká kópia. Na rozdiel od prvku xsl: copy-of nemá prvok xsl: copy atribút @ select.
ako triediť pole
V nasledujúcom kóde sa kontextové položky kopírujú na výstup a všetky podradené položky sa rekurzívne nazývajú a kopírujú pomocou xsl: apply-template.
uzol () | @ * Znamená všetky uzly a všetky ich atribúty rekurzívne.
Výsledok: Takto sa rekurzívne skopírujú všetky uzly a atribúty zdrojového dokumentu do výstupného dokumentu, t. J. Vytvorí sa presná kópia zdrojového dokumentu.
# 10)
xsl: copy-of bude predvolene rekurzívne kopírovať postupnosť uzlov so všetkými svojimi potomkami a atribútmi, kvôli tejto povahe sa to nazýva aj ako hlboké kopírovanie. Na vyhodnotenie cesty XPath sa vyžaduje atribút @select.
Výsledok: Takto sa rekurzívne skopírujú všetky uzly a atribúty zdrojového dokumentu do výstupného dokumentu, t. J. Vytvorí sa presná kópia zdrojového dokumentu.
Znamená kópiu aktuálneho uzla a aktuálneho atribútu.
#eleven)
Tento prvok sa používa na napísanie komentára k cieľovému výsledku. Akýkoľvek textový obsah, ktorý je na strane tejto značky, sa vytlačí ako komentovaný výstup.
Toto sa vytlačí na výstup ako uzol komentára.
Výsledok:
# 12)
Toto vygeneruje textový uzol do výsledného dokumentu, hodnota vo vnútri xsl: text sa vytlačí ako reťazec na výstup.
Toto je
textový riadok.
Výkon:
Toto je
textový riadok.
# 13)
Týmto sa do výsledného dokumentu vygeneruje prvok, ktorého názov je uvedený v jeho atribúte @name. Atribút name je povinný atribút.
Výsledok: 5350192956
# 14)
Týmto sa vo výslednom dokumente vygeneruje atribút jeho nadradeného prvku. Názov atribútu je definovaný atribútom name a hodnota atribútu sa počíta pomocou cesty XPath uvedenej v atribúte select, ako je uvedené v nasledujúcom kóde. Atribút name je povinný atribút.
Výsledok:
# pätnásť)
Tento prvok bude triediť vybraný uzol sekvenčným spôsobom podľa toho vzostupne alebo zostupne. Uzol alebo cesta XPath sa zadáva pomocou atribútu @select a smer triedenia je definovaný atribútom @order.
V nižšie uvedenom kóde dostaneme zoznam všetkých kníh podľa názvu knihy v abecednom poradí.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Na tejto snímke obrazovky nájdete zvýraznenú oblasť:
Výsledok: Nasledujúci zoznam obsahuje názvy kníh v abecednom poradí, tj. Vzostupne.
Knihy:
ID knihy | Názov knihy | Meno autora | Vydavateľ | cena | Vydanie |
---|---|---|---|---|---|
3741122298 | Hlava prvá Java | Kathy sierra | O'reilly | 19 dolárov | 1 |
9987436700 | SQL Kompletná referencia | James R. Groff | McGraw-Hill | 45 dolárov | 3 |
5350192956 | Referencia programátora XSLT | Michael Kay | Wrox | 40 dolárov | 4 |
# 16)
Tento prvok deklaruje premennú, ktorá v nej obsahuje hodnotu. Premennou môže byť globálna premenná alebo lokálna premenná. Názov premennej je definovaný atribútom @name a hodnota, ktorú bude táto premenná obsahovať, je definovaná atribútom @select.
Prístup k globálnej premennej je globálny, to znamená, že premenné je možné volať v rámci ktoréhokoľvek prvku a zostať prístupné v šablóne so štýlmi.
Ak chcete definovať globálnu premennú, musíme len deklarovať, že vedľa koreňového prvku šablóny so štýlmi, ako je uvedený v nižšie uvedenom kóde v žlto zvýraznenej farbe, je premenná „SecondBook“ globálnou premennou a obsahuje názov druhej knihy.
Prístup lokálnej premennej je lokálny k prvku, v ktorom je definovaná, tj. Táto premenná by nebola prístupná mimo prvku, v ktorom je definovaná, ako je uvedené v nasledujúcom kóde, ktorý je zvýraznený šedou farbou, premenná „prvá kniha“ je miestna premenná a obsahuje názov prvej knihy.
Na volanie globálnej premennej do miestnej premennej sa pred názvom premennej používa symbol dolára ($), ako je to zobrazené žltou farbou $ .
First Book Name: Second Book Name:
Zvýraznenú oblasť nájdete na snímke obrazovky:
Výsledok:
Názov prvej knihy: Referencia programátora XSLT
Názov druhej knihy: Head First Java
# 17)
Tento prvok sa používa na deklaráciu kľúčov na účely zhody hodnôt vzoru s konkrétnym kľúčom.
Name je poskytovateľ tohto kľúča pomocou atribútu @name („ get-publisher “), Ktorý sa neskôr použije vo vnútri funkcie key (). Atribút @match je poskytovaný vstupnému uzlu indexu pomocou výrazov XPath („ kniha “), Podobne ako v žltej zvýraznenej položke @match sa používa na indexovanie všetkých kníh dostupných v obchode.
V porovnaní s atribútom @match sa používa atribút @use, ktorý deklaruje uzol, aby získal hodnotu pre tento kľúč prostredníctvom výrazu XPath („publisher“).
Teraz predpokladajme, že ak potrebujeme podrobnosti o knihe, ktorá je vydaná iba vydavateľom „Wrox“, potom túto hodnotu môžeme ľahko získať pomocou prvku xsl: key vytvorením páru kľúč - hodnota.
kľúč („get-publisher“, „Wrox“) Key () má dva parametre, prvý je názov kľúča, ktorý je v tomto prípade „get-publisher“, druhý je hodnota reťazca, ktorá je potrebná pri vyhľadávaní, čo je v našom prípade „Wrox“.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Zvýraznenú oblasť nájdete na snímke obrazovky:
Výsledok:
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th
Výsledok / Zobrazenie HTML:
Knihy:
ID knihy | Názov knihy | Meno autora | Vydavateľ | cena | Vydanie |
---|---|---|---|---|---|
5350192956 | Referencia programátora XSLT | Michael Kay | Wrox | 40 dolárov | 4 |
# 18)
Tento prvok sa používa na ladenie pri vývoji XSLT. Element poskytuje svoj výstup na štandardnú výstupnú obrazovku aplikácie.
Atribút @terminate sa používa s dvoma hodnotami „áno“ alebo „nie“, ak je hodnota nastavená na „áno“, syntaktický analyzátor sa okamžite ukončí, akonáhle bude splnená podmienka testu na vykonanie správy.
Aby sme to pochopili, predpokladajme, že ak sa v našom vstupnom dokumente cenový prvok náhodne vyprázdni, ako v nasledujúcom kóde, potom by sa malo spracovanie okamžite zastaviť, akonáhle procesor narazí na prázdny cenový prvok, čo je možné ľahko dosiahnuť pomocou xsl: správa vo vnútri podmienky testu if ako v nižšie uvedenom kóde XSLT.
Výstraha debuggeru sa zobrazuje na štandardnej obrazovke aplikácie: Spracovanie ukončené xsl: správa na riadku 21.
Zadajte kód XML:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Pre zvýraznenú oblasť pozri snímku obrazovky:
Kód XSLT:
Books:-
Book ID Book Name Author Name Publisher Price Edition Terminating: price element is empty.
Pre zvýraznenú oblasť pozri snímku obrazovky:
Výsledok: Upozorňujeme, že akonáhle syntaktický analyzátor narazí na prázdnu cenovku, okamžite ukončí spracovanie, kvôli ktorému sa uzatvárajú značky, a neprišiel by na koniec spisu.
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th 3741122298 Head First Java Kathy Sierra O'reilly 1st Odkaz na snímku obrazovky pre zvýraznenú oblasť:

# 19) a
element definuje parameter pre šablónu, ak je definovaný vo vnútri. Môže byť definovaný buď vo vnútri ako globálny parameter, alebo vo vnútri ako lokálny parameter pre túto šablónu.
Hodnota sa odovzdáva / dodáva, keď sa šablóna volá byor.

odovzdáva hodnotu parametra definovaného v šablóne. Atribút ako @name obsahuje názov parametra, ktorý by sa mal zhodovať s atribútom @name prvku. Atribút @Select sa používa na nastavenie hodnoty tohto parametra.

Na načítanie hodnoty parametra sa používa rovnaká premenná ako znak dolára ($).

Zdrojový kód XML:
XSLT Programmer's Reference Michael Kay Wrox 4th Head First Java Kathy Sierra O'reilly 1st SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Kód XSLT:
List of Books Name :-
Book Name:
Odkaz na snímku obrazovky pre zvýraznenú oblasť:

Výsledok:
List of Books Name :-
Book Name: XSLT Programmer's Reference
súkromný server World of Warcraft
Book Name: Head First Java
Book Name: SQL The Complete Reference