XSLT (EXtensible Sytlesheet Language Transformations) is a tool that can be used to transform XML documents into other formats most commonly of which is XHTML. XSLT is a stylesheet that defines how to display or output the data from the XML. Using XSLT you can sort, filter, and manipulate the data as needed iterating of data elements and their child elements. Below is a short example of how to sort an XML data file based on 2 elements.
To start things off we need an xml data file. In our example we are going to use books. You will notice that in addition to the xml data we specify the xml-stylesheet to utilize which we will create next.
Patrick Rothfuss The Name of the Wind DAW 2007 Trudi Canavan The Magicain's Guild EOS 2004 Trudi Canavan The Magicain's Apprentice Orbit 2009 Jim Butcher First Lord's Fury ACE 2090 Jim Butcher Changes ROC 2010 Brandon Sanderson Warbreaker TOR 2009
Next we will create an XSL Stylesheet that will be used to transform the XML Data into a XHTML page that displays the information in a table sorted by author followed by the title.
Title Author Publisher Year
In the above example we define the style sheet to iterate over each book element in the xml using the xsl:for-each tag. Then we immediately tell it to sort on the author field and secondly by the title field by use of the xsl:sort tag.
The end result is an html table as shown below:
|First Lord’s Fury||Jim Butcher||ACE||2090|
|The Name of the Wind||Patrick Rothfuss||DAW||2007|
|The Magicain’s Apprentice||Trudi Canavan||Orbit||2009|
|The Magicain’s Guild||Trudi Canavan||EOS||2004|
You can sort on as many elements as you want simply adding addtional xsl:sort tags. Full information on the available properties like order can be found at w3schools