Suche…


Bemerkungen

XSLT (XSL-Transformationen, Extensible Stylesheet Language Transformations) ist eine auf XML basierende Programmiersprache, deren Zweck es ist, XML zu bearbeiten und zu transformieren. Es ist eine funktionale Programmiersprache und ein W3C-Standard. Mit XSLT können Sie ein oder mehrere XML-Dokumente in ein Ergebnis umwandeln, das verschiedene Ausgabeformate (XML, HTML, Text) haben kann.

Um XSLT zu verstehen, ist es am besten, gute Kenntnisse in folgenden Bereichen zu haben:

  1. XML
  2. XPath

Ohne diese beiden grundlegenden Konzepte hätten Sie Schwierigkeiten, XSLT zu lernen. Erstens, weil ein XSLT-Dokument ein XML-Dokument ist. Zweitens verwenden XSLT-Dokumente XPath, um das umzuwandelnde XML-Dokument abzufragen.

Empfohlene Lektüre: https://en.wikipedia.org/wiki/XSLT

Versionen

Ausführung Spezifikation Status Veröffentlichungsdatum
XSLT 1.0 https://www.w3.org/TR/xslt Empfehlung 1998-08-18
XSLT 2.0 https://www.w3.org/TR/xslt20 Empfehlung 2007-01-23
XSLT 3.0 https://www.w3.org/TR/xslt-30 Kandidatenempfehlung 2015-11-19

Installation oder Setup

XSLT ist eine spezielle Programmiersprache. Es wird häufig für die Umwandlung von XML-Dokumenten in ein anderes XML-Format, in HTML oder in textbasierte Formate verwendet.

Es werden zwei Hauptversionen von XSLT verwendet: XSLT 1.0 und XSLT 2.0. XSLT 1.0 ist breiter implementiert, hat jedoch viele Einschränkungen und Einschränkungen im Vergleich zu XSLT 2.0. Sie müssen entscheiden, welche Version verwendet werden soll. Wenn für Ihre gewählte Umgebung ein XSLT 2.0-Prozessor verfügbar ist, ist dies fast immer die bessere Wahl.

(XSLT 1.0 wurde im November 1999 veröffentlicht, und viele Implementierungen wurden innerhalb von ein oder zwei Jahren veröffentlicht, sowohl von Mainstream-Anbietern wie Microsoft, IBM, Sun und Oracle als auch von einzelnen Enthusiasten, die in ihrer Freizeit arbeiten. XSLT 2.0 wurde im Januar veröffentlicht 2007 und viele der ursprünglichen 1.0-Prozessoren wurden nie aktualisiert, da ihre Entwickler das Interesse verloren hatten. Der am häufigsten verwendete XSLT-2.0-Prozessor ist Saxon, hat aber kein Selbstverständnis: Andere freistehende Produkte umfassen RaptorXML (von Altova) ), XmlPrime (von CBCL) und Exselt sowie 2.0-Prozessoren sind auch in IBMs WebLogic, in den XML-Datenbankserver von MarkLogic und in Intels XML Accelerator eingebettet.)

Die Spezifikation von XSLT 3.0 ist technisch vollständig (Vorgeschlagene Empfehlung im April 2017), wird jedoch vorerst als blutig angesehen: Bedenken Sie es nur, wenn Sie dringend neue Funktionen wie Streaming, Pakete und JSON-Unterstützung benötigen oder versuchen / fangen. Es gibt drei bekannte Implementierungen: Saxon, Exselt und RaptorXML.

Um mit XSLT zu beginnen, haben Sie mehrere Möglichkeiten:

  • Verwenden Sie ein Online-XSLT-Tool. Es stehen mehrere zur Verfügung (Suche nach "Online-XSLT-Tool"), eine sehr zuverlässige Online-IDE ist http://xsltransform.net/ . Dies ist ein guter Weg, um ein anfängliches Gefühl für die Sprache zu bekommen, aber Sie möchten diesen Weg nicht fortsetzen, wenn Sie sich wirklich weiterentwickeln.

  • Verwenden Sie die in jedem Browser integrierte XSLT-Engine. Wie bei Online-Tools haben diese den Vorteil, dass Sie nichts installieren müssen. Die Browser unterstützen jedoch nur XSLT 1.0, sie unterstützen nur die Konvertierung von XML in HTML und sie unterstützen das Debugging nur sehr schwach. Eine sehr neue, aber immer noch experimentelle Entwicklung ist Saxon-JS, die die Ausführung von XSLT 2.0 (und Teilen von XSLT 3.0) im Browser ermöglicht.

  • Installieren Sie einen XSLT-Prozessor (z. B. Saxon oder xsltproc). Die meisten dieser Produkte können über die Befehlszeile des Betriebssystems oder über eine API für bestimmte Programmiersprachen wie Java, C, C # oder Python aufgerufen werden.

  • Installieren Sie eine XML-Entwicklungsumgebung wie Altova XML Spy, oXygen von SyncroSoft oder Stylus Studio. Obwohl dies eine kostenintensivere Option ist, bietet sie eine viel umfassendere Entwicklungsunterstützung und Debugging-Funktionen.

Für welche Option Sie sich auch entscheiden, Sie sollten zuerst entscheiden, ob Sie XSLT 1.0 oder XSLT 2.0 verwenden möchten.

Einfaches XSLT-Beispiel

Hier ist ein einfaches Beispiel, das XSLT verwendet, um Daten in einer XML-Datei in eine Tabelle in einer HTML-Datei zu konvertieren. Sie können es verwenden, um mit einfachen XSLT-Transformationen zu experimentieren.

Voraussetzung: Installieren Sie eine Java-Laufzeitumgebung, und fügen Sie der PATH-Variable den Speicherort der JRE hinzu. (Unter Windows fügen die meisten Installationsprogramme Java für Ihren Pfad hinzu.) Wenn dies funktioniert, sollten Sie in der Lage sein, ein Befehlszeilenfenster zu öffnen, den Befehl java -version und Informationen zu Ihrer JRE java -version .

  1. Laden Sie den Saxon-HE XSLT-Prozessor für Java hier herunter : saxon.sourceforge.net und entpacken Sie ihn an einem beliebigen Ort auf Ihrem Computer.
  2. Erstellen Sie in einem Texteditor eine Datei mit dem Namen pets.xml mit dem folgenden Code:
  <pets>
  <petType name="Dogs">
    <pet id="123" name="Sparky" vaccineStatus="vaccinated" healthStatus="healthy"/>
    <pet id="234" name="Sadie" vaccineStatus="unvaccinated" healthStatus="sick"/>
    <pet id="345" name="Herman" vaccineStatus="unvaccinated" healthStatus="unknown"/>
  </petType>
  <petType name="Cats">
    <pet id="456" name="Cleo" vaccineStatus="vaccinated" healthStatus="healthy"/>
    <pet id="567" name="Janet" vaccineStatus="unvaccinated" healthStatus="healthy"/>
    <pet id="678" name="Furry" vaccineStatus="vaccinated" healthStatus="sick"/>
  </petType>
</pets>
  1. Erstellen Sie in einem Texteditor eine Datei mit dem Namen petTransform.xsl mit dem folgenden Code:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="2.0">

<!-- handle the root XML element -->
<xsl:template match="/">
<html><head>
  <title>Pets that are available for adoption</title>
</head>
<body>
  <xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="pets">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="petType">
<h2><xsl:value-of select="@name"/></h2>
<table id="{@name}">
   <tr>
     <th colname="id">ID</th>
     <th colname="name">Name</th>
     <th colname="vaccinated">Vaccine status</th>
     <th colname="health">Health status</th>
   </tr>
   <tbody>
     <!-- add a row for each pet in this category -->
     <xsl:for-each select="pet">
       <tr>
         <td colname="id"><xsl:value-of select="@id"/></td>
         <td colname="name"><xsl:value-of select="@name"/></td>
         <td colname="vaccinated"><xsl:value-of select="@vaccineStatus"/></td>
         <td colname="health"><xsl:value-of select="@healthStatus"/></td>
       </tr>
     </xsl:for-each>
   </tbody>
 </table>
</xsl:template>

<!-- ignore the content of other tags because we processed them elsewhere -->
<xsl:template match="*">
<!-- do nothing -->
</xsl:template>

</xsl:stylesheet>
  1. Öffnen Sie ein Befehlszeilenfenster und wechseln Sie in den Ordner mit den XML- und XSLT-Dateien.
  2. Führen Sie den folgenden Befehl aus, wobei path_to_saxon.jar der vollständige Pfad zur Datei saxon9he.jar :
java -jar "path_to_saxon.jar" -o
petOutput.html -s:pets.xml -xsl:pettransform.xslt

Zum Beispiel:

java -jar "C:\Program Files\SaxonHE9-7-0-7J\saxon9he.jar" -o
petOutput.html -s:pets.xml -xsl:pettransform.xslt

Stellen Sie sicher, dass Sie diesen Befehl in einer einzelnen Zeile ausführen.

  1. Öffnen Sie die Ausgabedatei petOutput.html in einem Texteditor. Es sollte so aussehen:
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Pets that are available for adoption</title>
   </head>
   <body>
      
      <h2>Dogs</h2>
      <table id="Dogs">
         <tr>
            <th colname="id">ID</th>
            <th colname="name">Name</th>
            <th colname="vaccinated">Vaccine status</th>
            <th colname="health">Health status</th>
         </tr>
         <tbody>
            <tr>
               <td colname="id">123</td>
               <td colname="name">Sparky</td>
               <td colname="vaccinated">vaccinated</td>
               <td colname="health">healthy</td>
            </tr>
            <tr>
               <td colname="id">234</td>
               <td colname="name">Sadie</td>
               <td colname="vaccinated">unvaccinated</td>
               <td colname="health">sick</td>
            </tr>
            <tr>
               <td colname="id">345</td>
               <td colname="name">Herman</td>
               <td colname="vaccinated">unvaccinated</td>
               <td colname="health">unknown</td>
            </tr>
         </tbody>
      </table>
      
      <h2>Cats</h2>
      <table id="Cats">
         <tr>
            <th colname="id">ID</th>
            <th colname="name">Name</th>
            <th colname="vaccinated">Vaccine status</th>
            <th colname="health">Health status</th>
         </tr>
         <tbody>
            <tr>
               <td colname="id">456</td>
               <td colname="name">Cleo</td>
               <td colname="vaccinated">vaccinated</td>
               <td colname="health">healthy</td>
            </tr>
            <tr>
               <td colname="id">567</td>
               <td colname="name">Janet</td>
               <td colname="vaccinated">unvaccinated</td>
               <td colname="health">healthy</td>
            </tr>
            <tr>
               <td colname="id">678</td>
               <td colname="name">Furry</td>
               <td colname="vaccinated">vaccinated</td>
               <td colname="health">sick</td>
            </tr>
         </tbody>
      </table>
      
   </body>
</html>
  1. Öffnen Sie die Ausgabedatei petOutput.html in einem Webbrowser. Es sollte die Daten in einer einfachen Tabelle anzeigen.


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow