xslt tutorial xslt transformations elements with examples
Aquest tutorial explica què és XSLT, les seves transformacions, elements i ús amb un exemple. També cobreix la importància de XPath per desenvolupar el codi de conversió XSLT:
El terme 'XSLT' es genera combinant dues paraules, és a dir, 'XSL' i 'T', 'XSL' és la forma curta de 'Llenguatge de full d'estil extensible' i 'T' és una forma curta de 'Transformació'.
Per tant, bàsicament, XSLT és un llenguatge de transformació que s’utilitza per transformar / convertir documents XML d’origen a documents XML o a altres formats com HTML, PDF mitjançant XSL-FO (Objectes de format), etc.
Què aprendreu:
Introducció a XSLT
La transformació es produeix amb l'ajuda del processador XSLT (com Saxon, Xalan). Aquest processador XSLT pren un o més documents XML com a font amb un fitxer XSLT que conté codi XSLT escrit i els documents de resultat / sortida es generaran més tard, tal com es mostra al diagrama següent.
El processador XSLT analitza els documents XML d'origen mitjançant X-Path per navegar pels diferents elements font, començant des de l'element arrel fins al final dels documents.
Lectura recomanada => Tot el que necessiteu saber X-Path
Transformació XSLT
Per iniciar la transformació, necessitem un document XML en què s’executarà el codi XSLT, el propi fitxer de codi XSLT i l’eina o el programari amb processador XSLT (Podeu utilitzar qualsevol versió gratuïta o versió de prova del programari amb finalitats d’aprenentatge).
# 1) Codi XML
A continuació es mostra el codi XML font on s’executarà el codi XSLT.
Nom de l'arxiu: Llibres.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) Codi XSLT
A continuació es mostra el codi XSLT basat en el qual s’executarà al document XML anterior.
Nom de l'arxiu: Llibres.xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Codi de resultat / sortida
El codi següent es produirà després d'utilitzar el codi XSLT al document XML anterior.
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) Veure el resultat / sortida al navegador web
Llibres:
Identificador del llibre | Nom del llibre | Nom de l'autor | Editor | Preu | Edició |
---|---|---|---|---|---|
5350192956 | Referència del programador XSLT | Michael Kay | Wrox | $ 40 | 4t |
3741122298 | Cap de Java primer | Kathy Serra | O'reilly | $ 19 | 1r |
9987436700 | SQL La referència completa | James R. Groff | McGraw-Hill | $ 45 | 3r |
Elements XSLT
Per entendre el codi XSLT anterior i funciona, primer hem d’entendre els diferents elements XSLT i els seus atributs.
# 1) O
Tots els codis XSLT han de començar amb l'element arrel o bé
Atributs:
- @xmlns: xsl: Connecta el document XSLT amb l'estàndard XSLT.
- @versió: Defineix la versió del codi XSLT a l’analitzador.
# 2)
Aquesta declaració defineix un conjunt de regles aplicades per processar o transformar l'element d'entrada seleccionat del document d'origen a les regles d'element de destinació definides dels documents de sortida.
Bàsicament hi ha disponibles dos tipus de plantilles segons els seus atributs:
(i) Plantilla amb nom: Quan l'element xsl: template conté l'atribut @name, s'anomena Plantilla amb nom.
Les plantilles amb nom són cridades per xsl: element de plantilla de trucada.
(ii) Plantilla de coincidència: L'element xsl: template conté l'atribut @match que conté un patró coincident o XPath aplicat als nodes d'entrada.
Les plantilles de coincidència es criden mitjançant xsl: apply-template element.
xsl: l’element de la plantilla ha de tenir l’atribut @ match o l’atribut @name o tots dos. Un element xsl: template que no té cap atribut de concordança no ha de tenir cap atribut de mode ni cap atribut de prioritat.
Tornem a escriure el XSLT anterior (
a) Codi XSLT basat en coincidir plantilla amb. Vegeu a continuació el codi canviat ressaltat en groc i gris, produirà el mateix resultat de sortida anterior.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consulteu la captura de pantalla de l'àrea ressaltada:
b) Codi XSLT basat en la plantilla amb nom amb. Vegeu a continuació el codi canviat ressaltat en groc i gris, produirà el mateix resultat de sortida anterior.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consulteu la captura de pantalla de l'àrea ressaltada:
# 3)
El processador trobarà i aplicarà totes les plantilles que tinguin XPath definit a l'atribut @select.
L'atribut @mode també s'utilitza si volem donar més d'una forma de sortida amb el mateix contingut d'entrada.
# 4)
El processador farà una trucada a les plantilles que tinguin valor dins de l'atribut @name (obligatori).
element s’utilitza per passar paràmetres a la plantilla.
com extreure fitxers torrent mitjançant 7zip
# 5)
Proporcioneu el valor de cadena / text relatiu a l'expressió XPath definida a l'atribut @select, tal com es defineix al codi anterior.
Això donarà el valor del nom del llibre.
# 6): Repetició
Això processarà les instruccions per a cada conjunt de nodes (xpath definit a l'atribut @select (obligatori)) en la seqüència ordenada.
El codi anterior significa per a cada conjunt de nodes de botiga / llibre:
/ store / book (1)
/ store / book (2)
/ store / book (3)
també es pot utilitzar com a fill de xsl: for-each per definir l'ordre d'ordenació.
# 7): Processament condicional
El xsl: si les instruccions només es processaran si el valor booleà de l'atribut @test serà cert, en cas contrari, la instrucció no s'avaluarà i es retornarà la seqüència buida.
2'> Condition True: Count of books are more than two.
Resultat: Condició vertadera: el recompte de llibres és superior a dos.
Aquí el count () és la funció predefinida.
# 8): processament de condicions alternatives
xsl: choose té diversos casos per a diferents condicions que es proven dins de l'atribut @test de xsl: when elements, la condició de prova que es compleix primer entre tots els xsl: when, que es processaran primer i hi ha un xls opcional: en cas contrari element de manera que si cap de les proves de condició es compleix, es considerarà aquest xsl: en cas contrari.
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
Resultat: Condició Veritable: el recompte del llibre és de tres.
# 9)
xsl: copiar funciona en un element de context, és a dir, si aquest és un node, copiarà el node context al node acabat de generar i això no copiarà els fills del node context. Per aquest motiu, s’anomena còpia poc profunda. A diferència de l'element xsl: copy-of, el xsl: copy no té l'atribut @ select.
Al codi següent, els ítems contextuals es copien a la sortida i tots els ítems secundaris són cridats i copiats per xsl: apply-template recursivament.
node () | @ * Indica recursivament tots els nodes i tots els seus atributs.
Resultat: Això copiarà recursivament tots els nodes i atributs del document d'origen al document de sortida, és a dir, crearà una còpia exacta del document d'origen.
# 10)
xsl: copy-of copiarà la seqüència de nodes amb tots els seus fills i atributs de manera recursiva per defecte, a causa d'aquesta naturalesa també s'anomena còpia profunda L'atribut @select és necessari per a l'avaluació de l'XPath.
Resultat: Això copiarà recursivament tots els nodes i atributs del document d'origen al document de sortida, és a dir, crearà una còpia exacta del document d'origen.
Significa una còpia del node actual i l'atribut actual.
# 11)
Aquest element s'utilitza per escriure un comentari al resultat objectiu; qualsevol contingut de text que estigui al costat d'aquesta etiqueta s'imprimirà com a sortida comentada.
Això s'imprimirà per sortir com a node de comentari.
Resultat:
# 12)
Això generarà un node de text al document de resultat, el valor dins del fitxer xsl: el text s’imprimirà com una cadena per a la sortida.
Això és un
línia de text.
Sortida:
Això és un
línia de text.
# 13)
Això generarà un element al document de resultats amb el nom esmentat a l'atribut @name. L'atribut name és l'atribut obligatori.
Resultat: 5350192956
# 14)
Això generarà un atribut al seu element pare al document de resultats. El nom de l'atribut es defineix per l'atribut name i el valor de l'atribut es calcula mitjançant XPath esmentat a l'atribut select tal com es dóna al codi següent. L'atribut name és l'atribut obligatori.
Resultat:
# 15)
Aquest element ordenarà el node seleccionat de manera seqüencial en conseqüència en sentit ascendent o descendent. El node o XPath es dóna a través de l'atribut @select i la direcció d'ordenació la defineix l'atribut @order.
Al codi següent obtindrem la llista de llibres segons el nom del llibre en un ordre alfabètic.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consulteu aquesta captura de pantalla per a l'àrea ressaltada:
Resultat: La llista següent conté els noms dels llibres en ordre alfabètic, és a dir, en ordre ascendent.
Llibres:
Identificador del llibre | Nom del llibre | Nom de l'autor | Editor | Preu | Edició |
---|---|---|---|---|---|
3741122298 | Cap de Java primer | Kathy Serra | O'reilly | $ 19 | 1r |
9987436700 | SQL La referència completa | James R. Groff | McGraw-Hill | $ 45 | 3r |
5350192956 | Referència del programador XSLT | Michael Kay | Wrox | $ 40 | 4t |
# 16)
Aquest element declara una variable que hi conté un valor. Una variable pot ser una variable global o una variable local. El nom de la variable el defineix l'atribut @name i el valor que tindrà aquesta variable el defineix l'atribut @select.
L’accés a la variable global és global, és a dir, les variables es poden cridar dins de qualsevol element i restar accessibles al full d’estils.
Per definir una variable global, només hem de declarar que, al costat de l’element arrel del full d’estils, tal com es mostra al codi següent al groc ressaltat, la variable ‘SecondBook’ és la variable global i conté el nom del segon llibre.
L’accés de la variable local és local a l’element en què es defineix, és a dir, aquesta variable no seria accessible fora de l’element en què es defineix, tal com es mostra al codi següent que està ressaltat en gris, la variable 'primer llibre' és una variable local i conté el nom del primer llibre.
Per fer una trucada a la variable global a la variable local, s'utilitza el símbol Dollar ($) abans del nom de la variable, tal com es mostra a continuació en groc ressaltat $ .
First Book Name: Second Book Name:
Consulteu la captura de pantalla de l'àrea ressaltada:
Resultat:
Nom del primer llibre: Referència del programador XSLT
Nom del segon llibre: Head First Java
# 17)
Aquest element s'utilitza per declarar claus, per als valors del patró coincidents amb aquesta clau en particular.
El nom és un proveïdor d'aquesta clau per l'atribut @name (' get-publisher “), Que posteriorment s’utilitzarà dins de la funció key (). L'atribut @match es proporciona a l'expressió XPath per a indexar el node d'entrada del node llibre '), Com en el següent groc ressaltat, @match s'utilitza per indexar tots els llibres disponibles a la botiga.
En relació amb l'atribut @match, s'utilitza l'atribut @use, que declara el node per obtenir el valor d'aquesta clau mitjançant l'expressió XPath ('editor').
com executar un fitxer .jar Windows 10
Ara, suposem que si necessitem els detalls del llibre que només publica l'editor 'Wrox', podem obtenir aquest valor fàcilment mitjançant xsl: element clau fent un parell clau-valor.
clau ('get-publisher', 'Wrox') Key () pren dos paràmetres, primer és el nom de la clau, que en aquest cas és 'get-publisher', segon és el valor de cadena que cal cercar, que en el nostre cas és 'Wrox'.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Consulteu la captura de pantalla de l'àrea ressaltada:
Resultat:
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th
Resultat / Visualització HTML:
Llibres:
Identificador del llibre | Nom del llibre | Nom de l'autor | Editor | Preu | Edició |
---|---|---|---|---|---|
5350192956 | Referència del programador XSLT | Michael Kay | Wrox | $ 40 | 4t |
# 18)
Aquest element s'utilitza amb finalitats de depuració en el desenvolupament XSLT. L'element dóna la sortida a la pantalla de sortida estàndard de l'aplicació.
L'atribut @terminate s'utilitza amb dos valors 'sí' o 'no', si el valor s'estableix en 'sí', l'analitzador finalitzarà immediatament quan es compleixi la condició de prova perquè el missatge s'executi.
Per entendre-ho, suposem que si al nostre document d’entrada l’element de preu s’esborra accidentalment com es fa al codi següent, el processament s’hauria d’aturar immediatament tan bon punt el processador es trobi amb l’element de preu buit que es pot aconseguir fàcilment utilitzant xsl: missatge dins de la condició de prova if com es mostra al codi XSLT següent.
La pantalla estàndard de l'aplicació mostra l'alerta del depurador: Processament finalitzat per xsl: missatge a la línia 21.
Codi XML d'entrada:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Consulteu la captura de pantalla de l'àrea ressaltada:
Codi XSLT:
Books:-
Book ID Book Name Author Name Publisher Price Edition Terminating: price element is empty.
Consulteu la captura de pantalla de l'àrea ressaltada:
Resultat: Tingueu en compte que tan aviat com l’analitzador es troba amb l’etiqueta de preu buida, finalitza immediatament el processament a causa del qual les etiquetes de tancament de, i no arribaria al final del fitxer.
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 Consulteu la captura de pantalla de l'àrea ressaltada:

# 19) &
L'element defineix el paràmetre a plantilla si es defineix a l'interior. Es pot definir dins com a paràmetre global o dins com a paràmetre local d'aquesta plantilla.
Es transmet / subministra el valor de quan la plantilla es diu byor.

pregunta de l'entrevista PHP i resposta per experiència
passa el valor del paràmetre definit dins de la plantilla. L'atribut com a @name conté el nom del paràmetre que hauria de coincidir amb l'atribut @name de l'element. L'atribut @Select s'utilitza per establir un valor en aquest paràmetre.

Per obtenir el valor del paràmetre, s’utilitza el mateix que un signe de dòlar variable ($).

Codi XML font:
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
Codi XSLT:
List of Books Name :-
Book Name:
Consulteu la captura de pantalla de l'àrea ressaltada:

Resultat de sortida:
List of Books Name :-
Book Name: XSLT Programmer's Reference
Book Name: Head First Java
Book Name: SQL The Complete Reference