What is XSL?

XSL stands for Extensible Stylesheet Language
CSS was designed for styling HTML pages, and can be used to style XML pages
XSL was designed specifically to style XML pages, and is much more sophisticated than CSS
XSL consists of three languages:
XSLT (XSL Transformations) is a language used to transform XML documents into other kinds of documents (most commonly HTML, so they can be displayed)
XPath is a language to select parts of an XML document to transform with XSLT
XSL-FO (XSL Formatting Objects) is a replacement for CSS

How does it work?

The XML source document is parsed into an XML source tree
You use XPath to define templates that match parts of the source tree
You use XSLT to transform the matched part and put the transformed information into the result tree
The result tree is output as a result document
Parts of the source document that are not matched by a template are typically copied unchanged

Simple XPath

XPath expressions look a lot like paths in a computer file system
/ means the document itself (but no specific elements)
/library selects the root element
/library/book selects every book element
//author selects every author element, wherever it occurs

Simple XSLT
loops through every book element, everywhere in the document
chooses the content of the title element at the current location
    chooses the content of the title element for each book in the XML document

What we need to do

We need to save our XML into a file (let’s call it books.xml)
We need to create a file (say, books.xsl) that describes how to select elements from books.xml and embed them into an HTML page
We do this by intermixing the HTML and the XSL in the books.xsl file
We need to add a line to our books.xml file to tell it to refer to books.xsl for formatting information

How to use it

In a modern browser, such as Netscape 6, Internet Explorer 6, or Mozilla 1.0, you can just open the XML file
Older browsers will ignore the XSL and just show you the XML contents as continuous text
You can use a program such as Xalan, MSXML, or Saxon to create the HTML as a file
This can be done on the server side, so that all the client side browser sees is plain HTML
The server can create the HTML dynamically from the information currently in XML