mirror of
https://github.com/alexandrev/xslt-lab.git
synced 2026-09-22 05:33:16 +00:00
99 lines
4.2 KiB
Markdown
99 lines
4.2 KiB
Markdown
---
|
|
title: "XSL online tester: run XSL and XSLT transforms in your browser"
|
|
description: "Free XSL online tester and editor. Run XSL transformations, test XSLT stylesheets and validate XSL-FO output without installing anything."
|
|
date: 2026-04-13T00:00:00Z
|
|
tags: ["xsl", "xslt", "online", "tools"]
|
|
---
|
|
|
|
XSL (Extensible Stylesheet Language) is an umbrella term that covers three related specifications: XSLT for transformations, XPath for node selection, and XSL-FO for formatting objects. When developers search for an "XSL tester" or "XSL online editor", they are usually looking for a way to run XSLT stylesheets against XML input without a local install. [XSLT Playground](https://xsltplayground.com) does exactly that.
|
|
|
|
## XSL vs XSLT — what is the difference?
|
|
|
|
**XSL** is the full family of W3C specifications:
|
|
- **XSLT** (XSL Transformations) — transforms XML documents into other formats
|
|
- **XPath** — the path language used inside XSLT to navigate XML trees
|
|
- **XSL-FO** (XSL Formatting Objects) — describes page layout for print and PDF output
|
|
|
|
In practice, when people say "XSL" in an integration or development context, they almost always mean **XSLT**. The stylesheet file extension `.xsl` and `.xslt` are interchangeable — Saxon and most processors accept both.
|
|
|
|
## Running XSL transforms online
|
|
|
|
[XSLT Playground](https://xsltplayground.com) supports XSLT 1.0, 2.0, and 3.0 via the Saxon processor. To run an XSL transform:
|
|
|
|
1. Paste your XML source document in the input panel
|
|
2. Paste your XSL stylesheet in the stylesheet panel
|
|
3. Select the XSLT version (1.0, 2.0 or 3.0)
|
|
4. Click **Run**
|
|
|
|
The output appears immediately. If the stylesheet has errors, the error panel shows the exact line and message from Saxon.
|
|
|
|
## Common XSL use cases
|
|
|
|
**XML to HTML** — the most common use. An XSL stylesheet walks an XML document tree and emits HTML tags:
|
|
|
|
```xml
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="html"/>
|
|
<xsl:template match="/">
|
|
<html><body>
|
|
<xsl:apply-templates select="//item"/>
|
|
</body></html>
|
|
</xsl:template>
|
|
<xsl:template match="item">
|
|
<p><xsl:value-of select="name"/></p>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|
|
```
|
|
|
|
**XML to XML** — reshaping or filtering a document structure:
|
|
|
|
```xml
|
|
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="xml" indent="yes"/>
|
|
<xsl:template match="/">
|
|
<output>
|
|
<xsl:copy-of select="//product[price > 100]"/>
|
|
</output>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|
|
```
|
|
|
|
**XML to plain text or CSV** — using `xsl:output method="text"`:
|
|
|
|
```xml
|
|
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="text"/>
|
|
<xsl:template match="/">
|
|
<xsl:for-each select="//row">
|
|
<xsl:value-of select="string-join((col1, col2, col3), ',')"/>
|
|
<xsl:text> </xsl:text>
|
|
</xsl:for-each>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|
|
```
|
|
|
|
## XSL file extensions: .xsl vs .xslt
|
|
|
|
Both `.xsl` and `.xslt` are valid. The `.xsl` extension is older and more common in enterprise systems (SAP, Oracle, IBM DataPower). The `.xslt` extension is more explicit. Saxon accepts either. XSLT Playground accepts any content regardless of what you call it.
|
|
|
|
## Testing XSL stylesheets online
|
|
|
|
The main advantage of an online XSL tester is speed of iteration. You can:
|
|
|
|
- Paste a real XML payload from a production system and see what the stylesheet produces
|
|
- Add parameters and test different code paths
|
|
- Enable trace mode to see which templates fired and in what order
|
|
- Export the entire test case (input + stylesheet + parameters) as a JSON workspace to share with a colleague
|
|
|
|
All of this is available at [XSLT Playground](https://xsltplayground.com) without creating an account or installing anything.
|
|
|
|
## XSL transform online vs local Saxon
|
|
|
|
For most development and debugging tasks, the online tester is faster than running Saxon locally. Use local Saxon when:
|
|
|
|
- You are processing confidential data that cannot leave your network
|
|
- Your input files are very large (several MB or more)
|
|
- You need to integrate the transform into a build pipeline
|
|
|
|
For everything else — prototyping, debugging, sharing test cases — the online XSL tester is quicker.
|