Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
An XSLTProcessor
applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param>
parameter values, and to apply the transformation to documents.
Syntax
The constructor has no parameters.
new XSLTProcessor()
Methods
[Throws] void
XSLTProcessor.importStylesheet
(
Node
styleSheet)
- Imports the XSLT stylesheet. If the given node is a document node, you can pass in a full XSL Transform or a literal result element transform; otherwise, it must be an
<xsl:stylesheet>
or<xsl:transform>
element. [Throws]
DocumentFragment
XSLTProcessor.transformToFragment
(
Node
source,
Document
owner)
- Transforms the node source by applying the stylesheet imported using the
XSLTProcessor.importStylesheet()
function. The owner document of the resulting document fragment is the owner node. [Throws]
Document
XSLTProcessor.transformToDocument
(
Node
source)
-
Transforms the node source applying the stylesheet given importing using the
XSLTProcessor.importStylesheet()
function.The resultant object depends on the output method of the stylesheet:
Output method Result type html
HTMLDocument
xml
XMLDocument
text
XMLDocument
with a single root element<transformiix:result>
with the text as a child [Throws] void
XSLTProcessor.setParameter
(
String
namespaceURI,
String
localName, any value)
- Sets a parameter in the XSLT stylesheet that was imported. (Sets the value of an
<xsl:param>
.) A null value fornamespaceURI
is treated the same as an empty string. [Throws] any
XSLTProcessor.getParameter
(
String
namespaceURI,
String
localName)
- Gets the value of a parameter from the XSLT stylesheet. A null value for
namespaceURI
is treated the same as an empty string. [Throws] void
XSLTProcessor.removeParameter
(
String
namespaceURI,
String
localName)
- Removes the parameter if it was previously set. This will make the
XSLTProcessor
use the default value for the parameter as specified in the stylesheet. A null value fornamespaceURI
is treated the same as an empty string. void
XSLTProcessor.clearParameters()
- Removes all set parameters from the
XSLTProcessor
. TheXSLTProcessor
will then use the defaults specified in the XSLT stylesheet. void
XSLTProcessor.reset()
- Removes all parameters and stylesheets from the
XSLTProcessor
.
Properties
Non-Web-exposed properties
The following properties are [ChromeOnly]
and not exposed to Web content:
[ChromeOnly] attribute unsigned long
XSLTProcessor.flags
-
Flags that tweak the behavior of the processor. Not reset by calling
XSLTProcessor.reset()
. Default value:0
Possible values are:
Name Value Effect (None) 0
None DISABLE_ALL_LOADS
1
Disable loading external documents (via e.g. <xsl:import>
anddocument()
)
Examples
Specifications
Not part of any specification. This is a proprietary interface that originated in Gecko.
Gecko IDL
Browser compatibility
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | Yes | Yes | Yes | No | Yes | Yes |
importStylesheet | Yes | Yes | Yes | No | Yes | Yes |
transformToFragment | Yes1 | Yes | Yes2 | No | Yes3 | Yes |
transformToDocument | Yes1 | Yes | Yes2 | No | Yes3 | Yes |
setParameter | Yes4 | Yes | Yes | No | Yes5 | Yes |
getParameter | Yes4 | Yes | Yes | No | Yes5 | Yes |
removeParameter | Yes | Yes | Yes | No | Yes | Yes |
clearParameters | Yes | Yes | Yes | No | Yes | Yes |
reset | Yes | Yes | Yes | No | Yes | Yes |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
---|---|---|---|---|---|---|---|
Basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
importStylesheet | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
transformToFragment | Yes1 | Yes1 | Yes | Yes2 | Yes3 | Yes | Yes |
transformToDocument | Yes1 | Yes1 | Yes | Yes2 | Yes3 | Yes | Yes |
setParameter | Yes4 | Yes4 | Yes | Yes | Yes5 | Yes | Yes |
getParameter | Yes4 | Yes4 | Yes | Yes | Yes5 | Yes | Yes |
removeParameter | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
clearParameters | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
reset | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
1. Chrome returns null
if an error occurs.
2. Firefox throws an exception if an error occurs.
3. Opera returns null
if an error occurs.
4. Chrome only supports string values.
5. Opera only supports string values.