Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Ein XSLTProcessor wendet eine XSLT-Stylesheet-Transformation auf ein XML-Dokument an, um ein neues XML-Dokument als Ausgabe zu erzeugen. Er verfügt über Methoden zum Laden des XSLT-Stylesheets, zum Manipulieren von <xsl:param>-Parameterwerten und zum Anwenden der Transformation auf Dokumente.
Erstellt einen neuen XSLTProcessor.
Importiert das XSLT-Stylesheet. Wenn der gegebene Knoten ein Dokumentknoten ist, können Sie eine vollständige XSL-Transformation oder eine Literal-Result-Element-Transformation übergeben; andernfalls muss es sich um ein <xsl:stylesheet> oder <xsl:transform>-Element handeln.
XSLTProcessor.transformToFragment()Transformiert die Knotenquelle durch Anwenden des mit der Funktion XSLTProcessor.importStylesheet() importierten XSLT-Stylesheets. Das Eigentümerdokument des resultierenden Dokumentfragments ist der Eigentümerknoten.
XSLTProcessor.transformToDocument()Transformiert die Knotenquelle durch Anwenden des mit der Funktion XSLTProcessor.importStylesheet() importierten XSLT-Stylesheets.
XSLTProcessor.setParameter()Setzt einen Parameterwert (<xsl:param>) im importierten XSLT-Stylesheet.
XSLTProcessor.getParameter()Gibt den Wert eines Parameters aus dem XSLT-Stylesheet zurück.
XSLTProcessor.removeParameter()Entfernt den Parameter, falls er zuvor gesetzt wurde. Dadurch verwendet der XSLTProcessor den im XSLT-Stylesheet angegebenen Standardwert für den Parameter.
XSLTProcessor.clearParameters()Entfernt alle gesetzten Parameter aus dem XSLTProcessor. Der XSLTProcessor verwendet dann die im XSLT-Stylesheet angegebenen Standardwerte.
XSLTProcessor.reset()Entfernt alle Parameter und Stylesheets aus dem XSLTProcessor.
Diese Schnittstelle hat keine Eigenschaften.
Für die tatsächliche Transformation benötigt XSLTProcessor ein XML-Dokument, das zusammen mit der importierten XSL-Datei verwendet wird, um das finale Ergebnis zu erzeugen. Das XML-Dokument kann eine separate XML-Datei sein, die mit fetch() geladen wird, oder ein Teil der bestehenden Seite sein.
Um einen Teil des DOMs einer Seite zu verarbeiten, ist es notwendig, zuerst ein XML-Dokument im Speicher zu erstellen. Angenommen, dass das zu verarbeitende DOM von einem Element mit der ID example enthalten wird, kann dieses DOM mit der Methode Document.importNode() des in Speicher gehaltenen XML-Dokuments "geklont" werden. Document.importNode() ermöglicht das Übertragen eines DOM-Fragments zwischen Dokumenten, in diesem Fall von einem HTML-Dokument zu einem XML-Dokument. Der erste Parameter referenziert den zu klonenden DOM-Knoten. Wenn der zweite Parameter auf "true" gesetzt wird, werden auch alle Nachkommen (ein tiefer Klon) geklont. Das geklonte DOM kann dann mit Node.appendChild() in das XML-Dokument eingefügt werden, wie unten gezeigt.
Sobald das Stylesheet importiert wurde, muss XSLTProcessor zwei Methoden für die eigentliche Transformation ausführen, nämlich XSLTProcessor.transformToDocument() und XSLTProcessor.transformToFragment(). XSLTProcessor.transformToDocument() gibt ein vollständiges XML-Dokument zurück, während XSLTProcessor.transformToFragment() ein Dokumentfragment zurückgibt, das leicht zu einem bestehenden Dokument hinzugefügt werden kann. Beide Methoden nehmen das XML-Dokument als ersten Parameter, das transformiert werden soll. XSLTProcessor.transformToFragment() benötigt einen zweiten Parameter, nämlich das Dokumentobjekt, das das erzeugte Fragment besitzen wird. Wenn das erzeugte Fragment in das aktuelle HTML-Dokument eingefügt wird, reicht es aus, document zu übergeben.
Sie können den DOMParser verwenden, um ein XML-Dokument aus einem XML-String zu erstellen.
Das einfache Beispiel lädt eine XML-Datei und wendet eine XSL-Transformation darauf an. Dies sind die gleichen Dateien, die im Generieren von HTML Beispiel verwendet werden. Die XML-Datei beschreibt einen Artikel und die XSL-Datei formatiert die Informationen zur Anzeige.
Das Beispiel lädt sowohl die .xsl (xslStylesheet) als auch die .xml (xmlDoc) Dateien in den Speicher. Die .xsl-Datei wird dann importiert (xsltProcessor.importStylesheet(xslStylesheet)) und die Transformation ausgeführt (xsltProcessor.transformToFragment(xmlDoc, document)). Dadurch können Daten nach dem Laden der Seite abgefragt werden, ohne einen neuen Seitenaufruf zu initiieren.
Dieses fortgeschrittene Beispiel sortiert mehrere divs basierend auf deren Inhalt. Das Beispiel erlaubt es, den Inhalt mehrfach zu sortieren, abwechselnd in aufsteigender und absteigender Reihenfolge. Das JavaScript lädt die .xsl-Datei nur beim ersten Sortieren und setzt die xslLoaded-Variable auf wahr, sobald es mit dem Laden der Datei abgeschlossen ist. Mit der Methode XSLTProcessor.getParameter() kann der Code feststellen, ob in aufsteigender oder absteigender Reihenfolge sortiert werden soll. Es wird standardmäßig aufsteigend sortiert, wenn der Parameter leer ist (beim ersten Sortieren, da kein Wert dafür in der XSLT-Datei vorhanden ist). Der Sortierwert wird mit XSLTProcessor.setParameter() festgelegt.
Die XSLT-Datei hat einen Parameter namens myOrder, den JavaScript setzt, um die Sortiermethode zu ändern. Das Attribut order des <xsl:sort>-Elements kann auf den Wert des Parameters mit $myOrder zugreifen. Der Wert muss jedoch ein XPath-Ausdruck und kein String sein, daher wird {$myOrder} verwendet. Unter Verwendung von {} wird der Inhalt als XPath-Ausdruck ausgewertet.
Sobald die Transformation abgeschlossen ist, wird das Ergebnis, wie in diesem Beispiel gezeigt, dem Dokument hinzugefügt.
| DOM # interface-xsltprocessor |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.