XSLTProcessor: setParameter() 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 setParameter()-Methode des XSLTProcessor-Interfaces setzt den Wert eines Parameters (<xsl:param>) im Stylesheet, das in den Prozessor importiert wurde.

Syntax

js
setParameter(namespaceURI, localName, value)

Parameter

namespaceURI

Der Namespace, der mit dem Parameternamen assoziiert ist. Ein "null"-Wert wird wie der leere String ("") behandelt.

localName

Der Name des Parameters im zugehörigen Namespace.

value

Der Wert des Parameters.

Hinweis: Firefox unterstützt jede Art von Parametern. Chrome, Edge und Safari unterstützen nur Zeichenfolgenparameter.

Rückgabewert

Keiner (undefined).

Beispiele

Verwendung von setParameter()

Dieses Beispiel zeigt, wie Parameter von JavaScript zu einem XSLT-Stylesheet mit setParameter() übergeben werden, um eine dynamische Modifikation der Transformationsausgabe basierend auf diesen Parametern zu ermöglichen.

HTML

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

JavaScript

js
const xmlString = `
<items>
  <item>Item 1</item>
  <item>Item 2</item>
  <item>Item 3</item>
</items>
`;

const xsltString = `
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:param name="showItems" select="'yes'"/>
  <xsl:param name="highlightColor" select="'yellow'"/>
  <xsl:template match="/">
    <ul>
      <xsl:if test="$showItems = 'yes'">
        <xsl:for-each select="items/item">
          <li style="background-color: {$highlightColor};">
            <xsl:value-of select="."/>
          </li>
        </xsl:for-each>
      </xsl:if>
    </ul>
  </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);

xsltProcessor.setParameter(null, "showItems", "yes");
xsltProcessor.setParameter(null, "highlightColor", "lightblue");

// Perform the transformation from XML to HTML
const resultFragment = xsltProcessor.transformToFragment(xmlDoc, document);

// Display the transformed result in the page
document.getElementById("result").appendChild(resultFragment);

Ergebnis

Spezifikationen

Specification
DOM
# dom-xsltprocessor-setparameter

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
setParameter

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch