xslt tutorial xslt transformations elements with examples
Dieses Tutorial erklärt anhand eines Beispiels, was XSLT ist, seine Transformationen, Elemente und Verwendung. Behandelt auch die Bedeutung von XPath für die Entwicklung des XSLT-Konvertierungscodes:
Der Begriff 'XSLT' wird durch Kombinieren von zwei Wörtern erzeugt, d. H. 'XSL' und 'T', 'XSL' ist die Kurzform von 'Extensible Stylesheet Language' und 'T' ist eine Kurzform von 'Transformation'.
Grundsätzlich ist XSLT eine Transformationssprache, die zum Transformieren / Konvertieren von XML-Quelldokumenten in XML-Dokumente oder in andere Formate wie HTML, PDF mithilfe von XSL-FO (Formatierungsobjekte) usw. verwendet wird.
Was du lernen wirst:
Einführung in XSLT
Die Transformation erfolgt mit Hilfe des XSLT-Prozessors (wie Saxon, Xalan). Dieser XSLT-Prozessor verwendet ein oder mehrere XML-Dokumente als Quelle mit einer XSLT-Datei, die XSLT-Code enthält, und die Ergebnis- / Ausgabedokumente werden später wie in der folgenden Abbildung gezeigt generiert.
Der XSLT-Prozessor analysiert die XML-Quelldokumente mithilfe von X-Path, um vom Stammelement bis zum Ende der Dokumente über verschiedene Quellelemente zu navigieren.
Empfohlene Lektüre => Alles, was Sie wissen müssen X-Pfad
XSLT-Transformation
Zum Starten der Transformation benötigen wir ein XML-Dokument, auf dem der XSLT-Code ausgeführt wird, die XSLT-Codedatei selbst und das Tool oder die Software mit XSLT-Prozessor (Sie können jede kostenlose Version oder Testversion der Software für Lernzwecke verwenden).
# 1) XML-Code
Unten finden Sie den XML-Quellcode, auf dem der XSLT-Code ausgeführt wird.
Dateinamen: 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) XSLT-Code
Unten finden Sie den XSLT-Code, der auf dem obigen XML-Dokument ausgeführt wird.
Dateinamen: Books.xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Ergebnis- / Ausgabecode
Der folgende Code wird nach Verwendung des XSLT-Codes im obigen XML-Dokument erstellt.
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) Ergebnis / Ausgabe im Webbrowser anzeigen
Bücher:
Buch-ID | Buchname | Autorenname | Verleger | Preis | Auflage |
---|---|---|---|---|---|
5350192956 | XSLT-Programmierreferenz | Michael Kay | Wrox | $ 40 | 4 .. |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $ 19 | 1 |
9987436700 | SQL Die vollständige Referenz | James R. Groff | McGraw-Hill | $ 45 | 3 .. |
XSLT-Elemente
Um den obigen XSLT-Code zu verstehen und zu funktionieren, müssen wir zuerst die verschiedenen XSLT-Elemente und ihre Attribute verstehen.
# 1) ODER
Jeder XSLT-Code muss entweder mit dem Root-Element oder mit dem Root-Element beginnen
Attribute:
- @xmlns: xsl: Verbindet das XSLT-Dokument mit dem XSLT-Standard.
- @Ausführung: Definiert die Version des XSLT-Codes für den Parser.
#zwei)
Diese Deklaration definiert eine Reihe von Regeln, die angewendet werden, um das ausgewählte Eingabeelement des Quelldokuments zu verarbeiten oder in die definierten Zielelementregeln der Ausgabedokumente umzuwandeln.
Grundsätzlich stehen zwei Arten von Vorlagen gemäß ihren Attributen zur Verfügung:
(i) Benannte Vorlage: Wenn das Element xsl: template das Attribut @name enthält, wird dies als benannte Vorlage bezeichnet.
Benannte Vorlagen werden von xsl: call-template element aufgerufen.
(ii) Übereinstimmungsvorlage: Das Element xsl: template enthält das Attribut @match, das ein übereinstimmendes Muster oder XPath enthält, das auf die Eingabeknoten angewendet wird.
Übereinstimmungsvorlagen werden von xsl: apply-template element aufgerufen.
xsl: Das Vorlagenelement muss entweder das Attribut @ match oder das Attribut @name oder beides haben. Ein xsl: template-Element ohne Übereinstimmungsattribut darf kein Modusattribut und kein Prioritätsattribut haben.
Schreiben wir das obige XSLT neu (
zu) XSLT-Code basierend auf Match Template with. Siehe unten gelb und grau hervorgehobener geänderter Code, es wird das gleiche obige Ausgabeergebnis erzeugt.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Siehe den Screenshot für den hervorgehobenen Bereich:
b) XSLT-Code basierend auf der benannten Vorlage mit. Siehe unten gelb und grau hervorgehobener geänderter Code, es wird das gleiche obige Ausgabeergebnis erzeugt.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Siehe den Screenshot für den hervorgehobenen Bereich:
#3)
Der Prozessor findet und wendet alle Vorlagen an, für die XPath im Attribut @select definiert ist.
Das @ mode-Attribut wird auch verwendet, wenn mehr als eine Ausgabemethode mit demselben Eingabeinhalt angegeben werden soll.
# 4)
Der Prozessor ruft die Vorlagen auf, deren Wert im Attribut @name liegt (erforderlich).
Element wird verwendet, um Parameter an die Vorlage zu übergeben.
Top 5 MP3 Downloader für Android
# 5)
Geben Sie den Zeichenfolgen- / Textwert für den XPath-Ausdruck an, der im Attribut @select definiert ist, wie im obigen Code definiert.
Dies gibt den Wert des Buchnamens an.
# 6): Wiederholung
Dadurch werden die Anweisungen für jeden Knotensatz (xpath definiert im Attribut @select (erforderlich)) in der sortierten Reihenfolge verarbeitet.
Der obige Code bedeutet für jeden Knotensatz von Speicher- / Buchmitteln:
/ store / book (1)
/ store / book (2)
/ store / book (3)
kann auch als untergeordnetes Element von xsl: for-each verwendet werden, um die Sortierreihenfolge zu definieren.
# 7): Bedingte Verarbeitung
Die Anweisung xsl: if wird nur verarbeitet, wenn der Boolesche Wert des Attributs @test true ist. Andernfalls wird die Anweisung nicht ausgewertet und die leere Sequenz wird zurückgegeben.
2'> Condition True: Count of books are more than two.
Ergebnis: Bedingung wahr: Die Anzahl der Bücher beträgt mehr als zwei.
Hier ist count () die vordefinierte Funktion.
# 8): Alternative Bedingungsverarbeitung
xsl: Wählen Sie mehrere Fälle für verschiedene Bedingungen aus, die im @ test-Attribut des xsl: when-Elements getestet werden. Die Testbedingung, die zuerst unter allen xsl: when-Bedingungen erfüllt wird, wird zuerst verarbeitet, und es gibt ein optionales xls: andernfalls Element, damit, wenn keiner der Bedingungstests wahr wird, dieses xsl: andernfalls berücksichtigt wird.
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
Ergebnis: Bedingung wahr: Die Anzahl der Bücher beträgt drei.
# 9)
xsl: copy funktioniert für Kontextelemente, d. h. wenn dies ein Knoten ist, wird der Kontextknoten auf den neu generierten Knoten kopiert, und die untergeordneten Knoten des Kontextknotens werden nicht kopiert. Aus diesem Grund wird dies als flache Kopie bezeichnet. Im Gegensatz zu xsl: copy-of-Element verfügt xsl: copy nicht über das Attribut @ select.
Im folgenden Code werden die Kontextelemente in die Ausgabe kopiert und alle untergeordneten Elemente werden von der xsl: apply-template rekursiv aufgerufen und kopiert.
node () | @ * Steht für alle Knoten und alle ihre Attribute rekursiv.
Ergebnis: Dadurch werden alle Knoten und Attribute des Quelldokuments rekursiv in das Ausgabedokument kopiert, d. H. Es wird eine exakte Kopie des Quelldokuments erstellt.
# 10)
xsl: copy-of kopiert die Knotenfolge mit all ihren untergeordneten Elementen und Attributen standardmäßig rekursiv. Aus diesem Grund wird dies auch als Deep Copying bezeichnet. Das Attribut @select ist für die Auswertung des XPath erforderlich.
Ergebnis: Dadurch werden alle Knoten und Attribute des Quelldokuments rekursiv in das Ausgabedokument kopiert, d. H. Es wird eine exakte Kopie des Quelldokuments erstellt.
Steht für eine Kopie des aktuellen Knotens und des aktuellen Attributs.
#elf)
Dieses Element wird verwendet, um einen Kommentar zum Zielergebnis zu schreiben. Jeder Textinhalt, der sich neben diesem Tag befindet, wird als kommentierte Ausgabe gedruckt.
Dies wird gedruckt, um als Kommentarknoten ausgegeben zu werden.
Ergebnis:
# 12)
Dadurch wird ein Textknoten für das Ergebnisdokument generiert. Der Wert im xsl: -Text wird als Zeichenfolge für die Ausgabe gedruckt.
Das ist ein
Textzeile.
Ausgabe:
Das ist ein
Textzeile.
# 13)
Dadurch wird ein Element für das Ergebnisdokument mit dem Namen generiert, der im Attribut @name angegeben ist. Das Namensattribut ist das erforderliche Attribut.
Ergebnis: 5350192956
# 14)
Dadurch wird ein Attribut für das übergeordnete Element im Ergebnisdokument generiert. Der Name des Attributs wird durch das Namensattribut definiert, und der Wert des Attributs wird durch den im Auswahlattribut genannten XPath berechnet, wie im folgenden Code angegeben. Das Namensattribut ist das erforderliche Attribut.
Ergebnis:
#fünfzehn)
Dieses Element sortiert den ausgewählten Knoten nacheinander in aufsteigender oder absteigender Richtung. Der Knoten oder XPath wird durch das Attribut @select angegeben, und die Sortierrichtung wird durch das Attribut @order definiert.
Im folgenden Code erhalten wir alle Bücher gemäß dem Buchnamen in alphabetischer Reihenfolge.
Books:-
Book ID Book Name Author Name Publisher Price Edition
In diesem Screenshot finden Sie den hervorgehobenen Bereich:
Ergebnis: Die folgende Liste enthält die Buchnamen in alphabetischer Reihenfolge, d. H. In aufsteigender Reihenfolge.
Bücher:
Buch-ID | Buchname | Autorenname | Verleger | Preis | Auflage |
---|---|---|---|---|---|
3741122298 | Head First Java | Kathy Sierra | O'reilly | $ 19 | 1 |
9987436700 | SQL Die vollständige Referenz | James R. Groff | McGraw-Hill | $ 45 | 3 .. |
5350192956 | XSLT-Programmierreferenz | Michael Kay | Wrox | $ 40 | 4 .. |
# 16)
Dieses Element deklariert eine Variable, die einen Wert enthält. Eine Variable kann eine globale Variable oder eine lokale Variable sein. Der Name der Variablen wird durch das Attribut @name definiert, und der Wert, den diese Variable enthält, wird durch das Attribut @select definiert.
Der Zugriff auf die globale Variable ist global, d. H. Die Variablen können in jedem Element aufgerufen werden und bleiben im Stylesheet zugänglich.
Um eine globale Variable zu definieren, müssen wir nur deklarieren, dass neben dem Stammelement des Stylesheets, wie im folgenden Code in gelb hervorgehoben, die Variable 'SecondBook' die globale Variable ist und den Namen des zweiten Buches enthält.
Der Zugriff auf die lokale Variable ist lokal für das Element, in dem sie definiert ist, dh diese Variable wäre außerhalb des Elements, in dem sie definiert ist, nicht zugänglich, wie im folgenden grau hervorgehobenen Code gezeigt. Die Variable 'erstes Buch' ist a lokale Variable und es enthält den Namen des ersten Buches.
Um entweder die globale Variable oder die lokale Variable aufzurufen, wird das Dollarsymbol ($) vor dem Namen der Variablen verwendet, wie unten in gelb hervorgehoben dargestellt $ .
Fragen und Antworten zu Business Analyst-Interviews
First Book Name: Second Book Name:
Siehe den Screenshot für den hervorgehobenen Bereich:
Ergebnis:
Name des ersten Buches: XSLT-Programmierreferenz
Zweiter Buchname: Head First Java
# 17)
Dieses Element wird verwendet, um Schlüssel für die Übereinstimmung der Musterwerte mit diesem bestimmten Schlüssel zu deklarieren.
Name ist ein Anbieter für diesen Schlüssel mit dem Attribut @name (“ get-Publisher “), Die später in der Funktion key () verwendet wird. Das Attribut @match wird bereitgestellt, um den Eingabeknoten durch XPath-Ausdrücke zu indizieren (“ Buch “), Wie unten gelb hervorgehoben, wird @match verwendet, um alle im Geschäft verfügbaren Bücher zu indizieren.
In Bezug auf das Attribut @match wird das Attribut @use verwendet. Es deklariert den Knoten, um den Wert für diesen Schlüssel über den XPath-Ausdruck ('Herausgeber') abzurufen.
Nehmen wir nun an, wenn wir die Details des Buches benötigen, das nur vom Wrox-Verlag veröffentlicht wird, können wir diesen Wert leicht über das xsl: key-Element erhalten, indem wir ein Schlüssel-Wert-Paar bilden.
Schlüssel ('Get-Publisher', 'Wrox') Key () verwendet zwei Parameter: erstens den Namen des Schlüssels, in diesem Fall 'get-publisher', und zweitens den zu durchsuchenden Zeichenfolgenwert, in unserem Fall 'Wrox'.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Siehe den Screenshot für den hervorgehobenen Bereich:
Ergebnis:
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th
Ergebnis / HTML-Ansicht:
Bücher:
Buch-ID | Buchname | Autorenname | Verleger | Preis | Auflage |
---|---|---|---|---|---|
5350192956 | XSLT-Programmierreferenz | Michael Kay | Wrox | $ 40 | 4 .. |
# 18)
Dieses Element wird für Debugging-Zwecke in der XSLT-Entwicklung verwendet. Das Element gibt seine Ausgabe an den Standardausgabebildschirm der Anwendung weiter.
Das @ terminate-Attribut wird mit zwei Werten verwendet, entweder 'Ja' oder 'Nein'. Wenn der Wert auf 'Ja' gesetzt ist, wird der Parser sofort beendet, sobald die Testbedingung für die Ausführung der Nachricht erfüllt ist.
Um dies zu verstehen, nehmen wir an, dass in unserem Eingabedokument das Preiselement wie im folgenden Code versehentlich leer wird. Die Verarbeitung sollte sofort beendet werden, sobald der Prozessor auf das leere Preiselement stößt, das mit xsl leicht erreicht werden kann: Meldung innerhalb der if-Testbedingung wie im folgenden XSLT-Code.
Die Debugger-Warnung wird im Anwendungsstandardbildschirm angezeigt: Verarbeitung beendet durch xsl: Nachricht in Zeile 21.
XML-Code eingeben:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Siehe Screenshot für den hervorgehobenen Bereich:
XSLT-Code:
Was ist ein Testplan in Qa
Books:-
Book ID Book Name Author Name Publisher Price Edition Terminating: price element is empty.
Siehe Screenshot für den hervorgehobenen Bereich:
Ergebnis: Bitte beachten Sie, dass der Parser die Verarbeitung sofort beendet, sobald er auf das leere Preisschild stößtund würde nicht am Ende der Datei kommen.
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 Siehe Screenshot für den hervorgehobenen Bereich:

# 19) &
Element definiert den Parameter für die Vorlage, wenn er im Inneren definiert ist. Es kann entweder innerhalb als globaler Parameter oder innerhalb als lokaler Parameter für diese Vorlage definiert werden.
Der Wert von wird übergeben / angegeben, wenn die Vorlage von oder aufgerufen wird.

Es übergibt den Wert des in der Vorlage definierten Parameters an die Vorlage. Attribut wie @name enthält den Namen des Parameters, der mit dem @ name-Attribut des Elements übereinstimmen soll. Das @ Select-Attribut wird verwendet, um einen Wert für diesen Parameter festzulegen.

Zum Abrufen wird der Wert des Parameters wie bei einem variablen Dollarzeichen ($) verwendet.

XML-Quellcode:
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
XSLT-Code:
List of Books Name :-
Book Name:
Siehe Screenshot für den hervorgehobenen Bereich:

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