XSLTProcessor: transformToDocument() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die transformToDocument() Methode der XSLTProcessor Schnittstelle transformiert die bereitgestellte Node Quelle zu einem Document unter Verwendung des mit XSLTProcessor verknüpften XSLT-Stilsheets.

Syntax

js
transformToDocument(source)

Parameter

source

Die Node Quelle, auf die das XSLT-Stilesheet angewendet werden soll.

Rückgabewert

Ein Document. Das tatsächliche Interface hängt von der Output-Methode des Stilesheets ab:

Output-Methode Ergebnis-Interface
html HTMLDocument
xml XMLDocument
text XMLDocument mit einem einzigen Wurzelelement <transformiix:result> mit dem Text als Kind

Beispiele

Verwendung von transformToDocument()

Dieses Beispiel zeigt, wie transformToDocument() verwendet wird, um ein XML-Dokument mithilfe von XSLT zu transformieren, was zu einer neuen XML-Dokumentstruktur führt.

HTML

html
<pre id="result"></pre>

JavaScript

js
const xmlString = `
<books>
  <book>
    <title>Book 1</title>
    <author>Author 1</author>
  </book>
  <book>
    <title>Book 2</title>
    <author>Author 2</author>
  </book>
</books>
`;

const xsltString = `
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="/">
    <catalog>
      <xsl:for-each select="books/book">
        <item>
          <name><xsl:value-of select="title"/></name>
          <writer><xsl:value-of select="author"/></writer>
        </item>
      </xsl:for-each>
    </catalog>
  </xsl:template>
</xsl:stylesheet>
`;

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "application/xml");
const xsltDoc = parser.parseFromString(xsltString, "application/xml");

const xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);

// Perform the transformation, returning the result as a new XML document
const resultDoc = xsltProcessor.transformToDocument(xmlDoc);

// Serialize the result document to a string
const serializer = new XMLSerializer();
const resultString = serializer.serializeToString(resultDoc);

// Display the transformed XML in the page
document.getElementById("result").textContent = resultString;

Ergebnis

Spezifikationen

Specification
DOM Standard
# dom-xsltprocessor-transformtodocument

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch