xslt tutorial xslt transformations elements with examples
Acest tutorial explică ce este XSLT, transformările sale, elementele și utilizarea cu exemplu. Acoperă, de asemenea, importanța XPath pentru a dezvolta codul de conversie XSLT:
Termenul „XSLT” este generat prin combinarea a două cuvinte, adică „XSL” și „T”, „XSL” este forma scurtă a „Limbajului extensibil al foii de stil” și „T” este o formă scurtă de „Transformare”.
Deci, practic, XSLT este un limbaj de transformare care este utilizat pentru a transforma / converti documente XML sursă în documente XML sau în alte formate, cum ar fi HTML, PDF utilizând XSL-FO (Obiecte de formatare) etc.
Ce veți învăța:
Introducere în XSLT
Transformarea are loc cu ajutorul procesorului XSLT (cum ar fi Saxon, Xalan). Acest procesor XSLT ia unul sau mai multe documente XML ca sursă cu un singur fișier XSLT care conține cod XSLT scris și documentele rezultate / de ieșire vor fi generate mai târziu, așa cum se arată în diagrama de mai jos.
Procesorul XSLT analizează documentele XML sursă utilizând X-Path pentru a naviga peste diferite elemente sursă începând de la elementul rădăcină până la sfârșitul documentelor.
Lectură recomandată => Tot ce trebuie să știți Calea X.
Transformarea XSLT
Pentru a începe transformarea, avem nevoie de un document XML pe care va rula codul XSLT, fișierul de cod XSLT în sine și instrumentul sau software-ul cu procesor XSLT (Puteți utiliza orice versiune gratuită sau versiune de încercare a software-ului în scopuri de învățare).
# 1) Cod XML
Mai jos este codul XML sursă pe care va rula codul XSLT.
Nume de fișier: 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) Cod XSLT
Mai jos este codul XSLT pe baza căruia va rula pe documentul XML de mai sus.
Nume de fișier: Books.xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Cod rezultat / ieșire
Codul de mai jos va fi produs după utilizarea codului XSLT pe documentul XML de mai sus.
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) Vizualizați rezultatul / ieșirea în browserul web
Cărți:
ID carte | Numele cărții | Numele autorului | Editor | Preț | Ediție |
---|---|---|---|---|---|
5350192956 | Referință programator XSLT | Michael Kay | Wrox | 40 USD | Al 4-lea |
3741122298 | Head First Java | Kathy Sierra | O'reilly | 19 USD | Primul |
9987436700 | SQL Referința completă | James R. Groff | McGraw-Hill | 45 USD | A treia |
Elemente XSLT
Pentru a înțelege codul XSLT de mai sus și funcționează, trebuie mai întâi să înțelegem diferitele elemente XSLT și atributele acestora.
# 1) SAU
Fiecare cod XSLT trebuie să înceapă cu elementul rădăcină fie
Atribute:
- @xmlns: xsl: Conectează documentul XSLT cu standardul XSLT.
- @versiune: Definește versiunea codului XSLT către analizor.
#Două)
Această declarație definește un set de reguli aplicate pentru a procesa sau transforma elementul de intrare selectat al documentului sursă la regulile definite ale elementelor țintă ale documentelor de ieșire.
Practic sunt disponibile două tipuri de șabloane conform atributelor lor:
(i) Șablon denumit: Când elementul xsl: template conține atributul @name, atunci acesta se numește șablon numit.
Șabloanele denumite sunt apelate de elementul xsl: call-template.
(ii) Șablon de potrivire: Elementul xsl: template conține atributul @match care conține un model de potrivire sau XPath aplicat la nodurile de intrare.
Șabloanele de potrivire sunt apelate de xsl: apply-template element.
xsl: elementul șablon trebuie să aibă fie atributul @ match, fie atributul @name sau ambele. Un element xsl: template care nu are atribut de potrivire nu trebuie să aibă nici un atribut de mod și nici un atribut de prioritate.
Să rescriem XSLT de mai sus (
la) Cod XSLT bazat pe Match Template cu. Vedeți mai jos codul modificat evidențiat în galben și gri, acesta va produce același rezultat de ieșire de mai sus.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consultați captura de ecran pentru zona evidențiată:
b) Cod XSLT bazat pe șablonul numit cu. Vedeți mai jos codul modificat evidențiat în galben și gri, acesta va produce același rezultat de ieșire de mai sus.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consultați captura de ecran pentru zona evidențiată:
# 3)
Procesorul va găsi și aplica toate șabloanele care au XPath definit în atributul @select.
Atributul @mode este, de asemenea, utilizat dacă dorim să oferim mai multe moduri de ieșire cu același conținut de intrare.
# 4)
Procesorul va efectua un apel către șabloanele având valoare în interiorul atributului @name (obligatoriu).
elementul este utilizat pentru a transmite parametrii șablonului.
oracle dba interviu întrebări și răspunsuri pentru experimentat
# 5)
Furnizați valoarea șirului / textului cu privire la expresia XPath definită în atributul @select, așa cum este definit în codul de mai sus.
Aceasta va da valoarea numelui cărții.
# 6): Repetare
Aceasta va procesa instrucțiunile pentru fiecare set de noduri (xpath definit în atributul @select (obligatoriu)) în secvența sortată.
Codul de mai sus înseamnă pentru fiecare set de noduri de magazin / carte înseamnă:
/ magazin / carte (1)
/ magazin / carte (2)
/ magazin / carte (3)
poate fi, de asemenea, utilizat ca un copil al xsl: pentru-fiecare pentru a defini ordinea de sortare.
# 7): Procesare condiționată
Xsl: dacă instrucțiunile vor fi procesate numai dacă valoarea booleană a atributului @test va fi adevărată, altfel instrucțiunea nu va fi evaluată și secvența goală este returnată.
2'> Condition True: Count of books are more than two.
Rezultat: Condiție adevărată: numărul de cărți este mai mare de două.
Aici count () este funcția predefinită.
# 8): Procesarea condițiilor alternative
xsl: alegeți au mai multe cazuri pentru condiții diferite, care sunt testate în atributul @test al elementelor xsl: when, condiția de testare care se împlinește mai întâi dintre toate xsl: when, care va fi procesată mai întâi și există un xls opțional: altfel element astfel încât, dacă niciunul dintre testele de condiții nu se împlinește, atunci se va lua în considerare acest xsl:
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
Rezultat: Condiție adevărată: numărul cărții este de trei.
# 9)
xsl: copierea funcționează pe elementul contextual, adică dacă acesta este nodul, atunci acesta va copia nodul contextului în nodul nou generat și acest lucru nu va copia copiii nodului contextual. Din acest motiv, aceasta se numește o copie superficială. Spre deosebire de elementul xsl: copy-of, xsl: copy nu are atributul @ select.
În codul de mai jos, elementele de context sunt copiate la ieșire și toate elementele copii sunt numite și copiate de xsl: apply-template recursiv.
nod () | @ * Reprezintă recursiv toate nodurile și toate atributele acestora.
cum se deschide fișierul .json
Rezultat: Aceasta va copia toate nodurile și atributele documentului sursă recursiv în documentul de ieșire, adică va crea o copie exactă a documentului sursă.
# 10)
xsl: copy-of va copia secvența de noduri cu toți copiii și atributele sale recursiv în mod implicit, datorită acestei naturi, aceasta este numită și copiere profundă. Atributul @select este necesar pentru evaluarea XPath.
Rezultat: Aceasta va copia toate nodurile și atributele documentului sursă recursiv în documentul de ieșire, adică va crea o copie exactă a documentului sursă.
Reprezintă o copie a nodului curent și a atributului curent.
#unsprezece)
Acest element este utilizat pentru a scrie un comentariu la rezultatul țintă, orice conținut text care se află lângă această etichetă va fi tipărit ca rezultat comentat.
Aceasta va fi tipărită pentru a fi afișată ca nod de comentariu.
Rezultat:
# 12)
Acest lucru va genera un nod text către documentul rezultat, valoarea din interiorul xsl: textul va fi tipărit ca un șir de ieșit.
Acesta este un
linie de text.
Ieșire:
Acesta este un
linie de text.
# 13)
Acest lucru va genera un element în documentul rezultat cu numele menționat în atributul său @name. Atributul nume este atributul necesar.
Rezultat: 5350192956
# 14)
Aceasta va genera un atribut elementului său părinte în documentul rezultat. Numele atributului este definit de atributul nume, iar valoarea atributului este calculată de XPath menționat în atributul select, așa cum este dat în codul de mai jos. Atributul nume este atributul necesar.
Rezultat:
#cincisprezece)
Acest element va sorta nodul selectat într-o manieră secvențială în mod corespunzător în direcția ascendentă sau descendentă. Nodul sau XPath este dat prin atributul @select și direcția de sortare este definită de atributul @order.
În codul de mai jos vom obține lista tuturor cărților conform numelui cărții într-o ordine alfabetică.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consultați această captură de ecran pentru zona evidențiată:
Rezultat: Lista de mai jos conține numele cărților într-o ordine alfabetică, adică în ordine crescătoare.
Cărți:
ID carte | Numele cărții | Numele autorului | Editor | Preț | Ediție |
---|---|---|---|---|---|
3741122298 | Head First Java | Kathy Sierra | O'reilly | 19 USD | Primul |
9987436700 | SQL Referința completă | James R. Groff | McGraw-Hill | 45 USD | A treia |
5350192956 | Referință programator XSLT | Michael Kay | Wrox | 40 USD | Al 4-lea |
# 16)
Acest element declară o variabilă care deține o valoare în ea. O variabilă ar putea fi o variabilă globală sau o variabilă locală. Numele variabilei este definit de atributul @name și valoarea pe care o va deține această variabilă este definită de atributul @select.
Accesul variabilei globale este global, adică variabilele pot fi apelate în orice element și rămân accesibile în foaia de stil.
Pentru a defini o variabilă globală, trebuie doar să declarăm că, lângă elementul rădăcină al foii de stil, așa cum se arată în codul de mai jos în galben evidențiat, variabila „SecondBook” este variabila globală și deține numele celei de-a doua cărți.
Accesul variabilei locale este local la elementul în care este definită, adică acea variabilă nu ar fi accesibilă în afara elementului în care este definită așa cum se arată în codul de mai jos, care este evidențiat în gri, variabila „prima carte” este o variabilă locală și deține numele primei cărți.
Pentru a efectua un apel către variabila globală către variabila locală, simbolul Dolar ($) este utilizat înainte de numele variabilei, așa cum se arată mai jos cu galben evidențiat $ .
First Book Name: Second Book Name:
Consultați captura de ecran pentru zona evidențiată:
Rezultat:
Numele primei cărți: Referința programatorului XSLT
Numele cărții a doua: Head First Java
# 17)
Acest element este utilizat pentru a declara chei, pentru valorile modelului de potrivire cu acea cheie specială.
Numele este un furnizor al acelei chei după atributul @name („ get-publisher „), Care este folosit ulterior în interiorul funcției key (). Atributul @match este furnizat indexului nodului de intrare prin expresiile XPath („ carte „), Ca în galbenul de mai jos, evidențiat @match este folosit pentru indexarea tuturor cărților disponibile în magazin.
În raport cu atributul @match, se utilizează atributul @use, acesta declară nodul pentru a obține valoarea pentru acea cheie prin expresia XPath („editor”).
Acum, să presupunem că dacă avem nevoie de detaliile cărții care este publicată doar de editorul „Wrox”, atunci putem obține cu ușurință acea valoare prin xsl: element cheie făcând o pereche cheie-valoare.
cheie („get-publisher”, „Wrox”) Key () ia doi parametri, primul este numele cheii, care în acest caz este „get-publisher”, al doilea este valoarea șirului care trebuie căutată, care în cazul nostru este „Wrox”.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consultați captura de ecran pentru zona evidențiată:
Rezultat:
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th
Vizualizare rezultat / HTML:
Cărți:
ID carte | Numele cărții | Numele autorului | Editor | Preț | Ediție |
---|---|---|---|---|---|
5350192956 | Referință programator XSLT | Michael Kay | Wrox | 40 USD | Al 4-lea |
# 18)
Acest element este utilizat în scopuri de depanare în dezvoltarea XSLT. Elementul își dă ieșirea ecranului de ieșire standard al aplicației.
Atributul @terminate este utilizat cu două valori fie „da”, fie „nu”, dacă valoarea este setată la „da”, atunci analizorul se termină imediat ce condiția de testare este satisfăcută pentru ca mesajul să fie executat.
Pentru a înțelege acest lucru, să presupunem că în documentul de intrare elementul de preț ajunge să se golească accidental ca în codul de mai jos, atunci procesarea ar trebui să se oprească imediat ce procesorul întâlnește elementul de preț gol, care poate fi realizat cu ușurință folosind xsl: mesaj în interiorul condiției de testare if ca în codul XSLT de mai jos.
Alerta de depanare este afișată de ecranul standard al aplicației: Procesare terminată de xsl: mesaj la rândul 21.
Intrare cod XML:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Consultați captura de ecran pentru zona evidențiată:
Cod XSLT:
Books:-
Book ID Book Name Author Name Publisher Price Edition Terminating: price element is empty.
Consultați captura de ecran pentru zona evidențiată:
Rezultat: Vă rugăm să rețineți că de îndată ce analizorul întâlnește eticheta de preț goală, acesta încetează imediat procesarea din cauza căreia etichetele de închidere ale, și nu va veni la sfârșitul fișierului.
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 Consultați captura de ecran pentru zona evidențiată:

# 19) &
element definește parametrul șablon dacă este definit în interior. Poate fi definit fie în interior ca parametru global, fie în interior ca parametru local pentru șablonul respectiv.
Valoarea este transmisă / furnizată atunci când șablonul este apelat de către sau.

trece valoarea parametrului definit în interiorul șablonului. Atributul precum @name conține numele parametrului care ar trebui să se potrivească cu atributul @name al elementului. Atributul @Select este utilizat pentru a seta o valoare la acel parametru.

Pentru a prelua valoarea parametrului se folosește același lucru ca și un semn variabil de dolar ($).

Cod XML sursă:
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
Cod XSLT:
List of Books Name :-
Book Name:
Consultați captura de ecran pentru zona evidențiată:

Rezultatul rezultatului:
List of Books Name :-
Book Name: XSLT Programmer's Reference
Book Name: Head First Java
Book Name: SQL The Complete Reference
exemple de cazuri de testare pentru aplicații web