XSLT - Как отсортировать записи.

Сортировка

Чтобы это сделать следует в цикл for-each добавить xsl:sort с аттрибутом select указывающим поле (правило), по которому будет идти сортировка.

Отметим что по умолчанию параметры сравниваются как строки т.е. "1" > "2", но "10" < "2". Чтобы это изменить надо использовать аттрибут data-type со значением number.

Пример:

<xsl:for-each select="elem">   
<xsl:sort select="@pos" data-type="number" order="ascending"/>
<xsl:value-of "@id" />
</xsl:for-each>

Чтобы сделать двойную сортировку пишем правила в порядке применения

Пример:

<xsl:for-each select="elem">   
<xsl:sort select="@pos" data-type="number" order="ascending"/>
<xsl:sort select="@title" order="ascending"/>
<xsl:value-of "@id" />
</xsl:for-each>