data před zpracováním pomocí instrukcí
xsl:apply-templates
a xsl:for-each
můžeme seřadit
<xsl:sort select="výraz
" data-type="typ
"/>
data v dokumentu XML jsou neotypovaná a chápou se jako text (pokud nepoužíváme XML schéma a Schema-Aware verzi XSLT), takže musíme určovat datový typ nebo provést ruční přetypování
lze určit mnoho dalších parametrů, např. jazyk pro správné řazení podle národních specifik
Příklad 9. katalog-razeni.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="/katalog/nazev"/></title> <style type="text/css"> body { color: black; background-color: white; } table { border: solid 2px black; border-collapse: collapse; } th a { text-decoration: none; color: black; } th { background-color: #FF8000; } th, td { border: solid 1px black; } </style> </head> <body> <h1> <xsl:value-of select="/katalog/nazev"/> </h1> <p>Položky jsou seřazeny podle ceny.</p> <table width="100%"> <tr> <th>Název</th> <th>Kategorie</th> <th>Cena</th> </tr> <!-- Pomocí šablon zpracujeme všechny položky --> <!-- Před voláním šablon jsou položky seřazeny --> <xsl:apply-templates select="/katalog/polozka"> <xsl:sort select="cena" data-type="number"/> </xsl:apply-templates> </table> </body> </html> </xsl:template> <xsl:template match="polozka"> <tr> <xsl:apply-templates/> </tr> </xsl:template> <xsl:template match="nazev"> <td align="center"><xsl:apply-templates/></td> </xsl:template> <xsl:template match="kategorie"> <td align="center"><xsl:apply-templates/></td> </xsl:template> <xsl:template match="cena"> <td align="right"><xsl:apply-templates/> Kč</td> </xsl:template> <xsl:template match="vyrobce"/> <xsl:template match="katalog/nazev"/> </xsl:stylesheet>