XSLT, short for XSL Transformations, is a language for turning one XML document into another document. The W3C Recommendation states that it “defines the syntax and semantics of XSLT, which is a language for transforming XML documents into other XML documents.” The output is commonly XML, but XSLT can equally produce HTML for web display or plain text, which made it the standard way to render structured XML data into presentation formats during the era when XML was the dominant data format.
XSLT 1.0 was published as a W3C Recommendation on 16 November 1999, on the same day as the XPath 1.0 Recommendation it depends on. The two were developed together as part of the broader XSL (Extensible Stylesheet Language) effort, which split into a transformation language (XSLT) and a formatting-objects vocabulary. The W3C has since published XSLT 2.0 (with a Second Edition in 2021) and XSLT 3.0, the latter reaching Recommendation on 8 June 2017; each later version pairs with a correspondingly newer version of XPath.
An XSLT stylesheet is itself an XML document. It consists of template rules, each of which matches some set of nodes in the source document and describes what to output when those nodes are encountered. The processor reads the source as a tree, walks it, and fires the matching templates, building a result tree. This makes XSLT declarative and rule-based rather than procedural: the author describes patterns and outputs, and the processor decides the order of application according to defined rules. The language is intentionally focused; the 1.0 specification notes it was not designed as a general-purpose XML transformation language but for the transformations needed when XSLT acts as part of XSL.
XSLT’s power comes from its tight coupling with XPath. Template match patterns and the expressions that pull values out of the source tree are written in XPath, so XSLT inherits XPath’s ability to navigate and select arbitrary parts of a document. This division of labor — XPath for addressing, XSLT for the transformation rules and output construction — is one of the cleaner separations of concerns among the XML standards, and it allowed both languages to evolve in step.
In practice XSLT was widely used for publishing pipelines, generating web pages from XML content, converting between XML vocabularies, and producing reports. It shipped in browsers and in server-side and command-line processors alike. While many transformation tasks later moved to general-purpose programming languages and lighter data formats, XSLT remains a precise, standardized, and still-maintained tool wherever XML-to-document transformation is required.