Zu den angenehmen Eigenschaften von XSLT gehört die Tatsache, dass eine Sortiermöglichkeit vorgesehen ist: Das Element xsl:sort kann innerhalb von xsl:apply-templates oder xsl:for-each vorkommen. Sein wichtigstes Attribut ist select. Außerdem verfügt es über weitere Attribute: lang, data-type, order und case-order.
Der Wert von select, ein Ausdruck im Sinne von XPath (siehe Kapitel 7), ist das eigentliche Kriterium für die Sortierung. Er wird, zunächst unsortiert, für jeden Knoten ausgewertet; erst nach dieser Auswertung wird sortiert. Die anderen Attribute regeln, wonach sich im Einzelnen die Sortierung richtet.
lang definiert, nicht überraschend, die Sprache, nach deren Regeln das Sortieren erfolgen soll — wie in XML vorgesehen, in der Form, die RFC 1766 vorschreibt (de, en, ...). data-type kann die Werte text und number, was ebenfalls selbsterklärend sein dürfte. Außerdem ist ein dritter Wert vorgesehen (ein nicht näher bezeichneter QName), dessen Behandlung die Spezifikation aber nicht vorsieht. order kann die Werte ascending und descending annehmen, was den Effekt aufsteigender und abfallender Reihenfolge nach sich zieht. case-order, das die Werte upper-first und lower-first haben kann, bestimmt, ob zunächst die Großbuchstaben an die Reihe kommen oder die Kleinbuchstaben. Eine Möglichkeit, unabhängig von Groß- und Kleinschreibung zu sortieren, sieht die Spezifikation leider nicht vor.