XSLT Tester

Test XSLT online: apply an XSLT 1.0 stylesheet to your XML and see the rendered result and its source. It runs entirely in your browser, so your files are never uploaded.

The XSLT tester runs entirely in your browser and needs JavaScript. Everything else on this page works without it. Alternatives: xsltproc on the command line, or the lxml library in Python.

Input

Paste or drop your XML and XSLT, or load the example. Files are read in your browser: nothing is uploaded. Press Ctrl+Enter to transform.

Result

XSLT 1.0. Scripts in the output don't run, and nothing is loaded from the web.

The result of the transformation will appear here.

Did this tool help? Support XMLNest

How do I test XSLT online?

Paste your XML in the XML tab and your stylesheet in the XSLT tab, or drop a .xml or .xsl file on the tool. Then press Transform, or Ctrl+Enter (⌘+Enter on a Mac). Rendered shows the output as a web page, and Source shows it as text with line numbers. Copy it, or download it as an .html, .xml or .txt file. Load example runs a real case: an RSS feed turned into a readable page.

What does this tester support?

It runs XSLT 1.0 with libxslt, the engine behind XSLT in Chrome for years, compiled to WebAssembly by the open source xslt-polyfill project. Output methods html, xml and text all work, and so do keys, modes and xsl:number. XSLT 2.0 and 3.0 are not supported: functions such as upper-case() return an error. Text from xsl:message appears under the result. Other files are never loaded, so xsl:include and xsl:import can't work.

Chrome is removing XSLT: what changes?

Chrome stops applying XSLT on November 17, 2026, with Chrome 158. A styled RSS feed or sitemap then shows raw XML instead of its page, and scripts lose the XSLTProcessor API. This tester doesn't use the browser's XSLT, so it keeps working. Our guide XSLT removed from Chrome explains the options for site owners. The XMLNest extension applies their stylesheet in Chrome again and can restore XSLTProcessor on sites you choose.

Common stylesheet errors and how to fix them

Most errors come from XPath: a typo in a select expression, a function from XSLT 2.0 or an undeclared namespace prefix. The XPath tester checks an expression on its own. The message gives the line of the stylesheet, and Go to error selects it. When the output is empty, the templates usually miss the elements: if the XML has a default namespace, give it a prefix in the stylesheet and use it in every path. A file that isn't well-formed XML is caught first, as in the XML validator.

Does this tool upload my files?

No. The transformation runs in this browser tab, and the security rules of this page block network requests from the tool and from the output. Scripts in the output don't run, and images hosted elsewhere are not loaded. Nothing is saved: close the tab and your files are gone. To tidy the XML first, use the XML formatter.

Questions

Which XSLT version does this tester support?

XSLT 1.0 with XPath 1.0, through libxslt. A stylesheet marked as version 2.0 still runs if it only uses 1.0 features, but functions that came with XSLT 2.0 return an error.

Why is my output empty?

Usually because no template matches. Check the paths in match and select. Elements in a default namespace need a prefix in XSLT 1.0: declare one in the stylesheet and use it in every path.

Can I pass parameters to the stylesheet?

Not yet. Each xsl:param keeps its default value. Change the default in the stylesheet to try another value.

Does xsl:include or document() work?

No. The tool never loads other files, so put the included templates in the same stylesheet. A call to document() finds nothing, and a note under the result says so.

Why don't scripts run in the Rendered view?

The output is shown in an isolated frame where scripts, forms and external files are blocked. That keeps you safe when a stylesheet produces code you did not expect. The Source view always shows the full output.

Which engine runs the transformation?

libxslt and libxml2, compiled to WebAssembly by the open source xslt-polyfill project, under a BSD license. It runs in your browser, not on a server, and it does not use Chrome's own XSLT.