Paste XML and an XSLT stylesheet, run the transformation, and see the result — raw or as a sandboxed HTML preview. Runs entirely in your browser using its built-in XSLT engine.
Uses your browser's native XSLT processor, which supports XSLT 1.0. There is no built-in browser support for XSLT 2.0 or 3.0 — see Limitations below.
About this tool
XSLT (Extensible Stylesheet Language Transformations) is a language for turning one XML document into another document — often HTML for display, sometimes a different XML shape, sometimes plain text. A stylesheet is itself an XML document made of templates: each template says "when you find something matching this pattern, output this." The engine walks your source XML, matches nodes against your templates, and builds the output as it goes.
This tool runs the transformation using the XSLTProcessor built into your browser — the same engine your browser would use if it encountered an XML document with an <?xml-stylesheet?> processing instruction pointing at an XSLT file. That means transformation happens entirely client-side, with no server involved, but it also means the tool inherits whatever XSLT version and feature set your specific browser ships. See Limitations below for exactly what that means in practice.
Output preview
If your stylesheet's output looks like HTML, a Preview tab appears alongside Raw so you can see it rendered rather than just as markup text. The preview renders inside a sandboxed <iframe> with scripting disabled, so any <script> tags your stylesheet happens to output will not execute — this tool never runs arbitrary code from your XML or XSLT, even in the preview.
Frequently asked questions
What XSLT version does this support?
XSLT 1.0, via your browser's built-in XSLTProcessor. No current mainstream browser has native support for XSLT 2.0 or 3.0, so this tool doesn't either — it isn't a missing feature so much as a boundary of what's available client-side without adding a large external engine.
Why is the error message so vague sometimes?
Browser XSLT engines generally report transformation failures with far less detail than dedicated processors like Saxon or xsltproc — often no line number and only a generic failure message. This tool shows exactly what the browser reports, plus guidance on the most common causes, rather than inventing detail that isn't actually available.
Is my XML or XSLT sent to a server?
No. Parsing and transformation both happen locally in your browser, using its built-in XML and XSLT engines. Nothing is uploaded.
Can the output execute JavaScript?
No. The Preview tab renders inside a sandboxed iframe with scripting disabled, so even if your stylesheet's output includes a <script> tag, it will not run.
What's the difference between Raw and Preview?
Raw shows the exact text the transformation produced. Preview (available only for HTML-like output) renders that text visually, the way a browser would display the resulting page.
Can I transform XML into another XML format, not just HTML?
Yes — set <xsl:output method="xml"/> (or omit it, since XML is the default) and view the result in the Raw tab.
Does this validate my XSLT against the XSLT 1.0 specification?
It checks that your stylesheet is well-formed XML and that the browser can import and run it, and it will surface whatever error the browser's engine returns. It doesn't do independent, spec-level validation beyond what the browser's own processor performs.
Why did my transformation produce no visible change?
Check that your stylesheet has a template matching your document's actual root element and namespace, and that any select/match XPath expressions reference elements that exist in your XML — a common cause is a namespace declared on the XML that isn't accounted for in the stylesheet's patterns.
Is there a file size limit?
No hard limit is enforced, but very large XML or XSLT files will take longer for the browser to parse and transform.