This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The setParameter() method of the XSLTProcessor interface sets the value of a parameter (<xsl:param>) in the stylesheet imported in the processor.
setParameter(namespaceURI, localName, value)
namespaceURIThe namespace associated with the parameter name. A "null" value is treated the same as the empty string ("").
localNameThe name of the parameter in the associated namespace.
valueThe value of the parameter.
Note: Firefox supports any kind of parameter. Chrome, Edge and Safari only support string parameters.
None (undefined).
This example demonstrates how to pass parameters from JavaScript to an XSLT stylesheet using setParameter(), allowing for dynamic modification of the transformation output based on these parameters.
<div id="result"></div>
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);
| Specification |
|---|
| DOM> # dom-xsltprocessor-setparameter> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
setParameter |
1Chrome only supports string values. |
12Edge only supports string values. |
1 | ≤12.1Opera only supports string values. |
3.1Safari only supports string values. |
18Chrome Android only supports string values. |
4 | ≤12.1Opera only supports string values. |
2Safari on iOS only supports string values. |
1.0Samsung Internet only supports string values. |
3WebView only supports string values. |
2WebView on iOS only supports string values. |
XSLTProcessor.getParameter()XSLTProcessor.removeParameter()XSLTProcessor.clearParameters()XSLTProcessor.reset()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor/setParameter