Элемент <xsl:sort>
Определяет критерии сортировки списков узлов, выбираемые функциями <xsl:for-each> или <xsl:apply-templates>.
<xsl:sort
select = string-expression
lang = { nmtoken }
data-type = { "text" | "number" | QName }
order = { "ascending" | "descending" }
case-order = { "upper-first" | "lower-first" }
/>
Атрибуты
select
Ключ сортировки для узла.Выражение, вычисляемое с заданным узлом в качестве текущего, с обработкой полного списка узлов в неотсортированном порядке как текущего списка узлов.Результирующий объект преобразуется в строку, которая используется как ключ сортировки для этого узла.По умолчанию атрибут select имеет значение ".".Поэтому строковое значение текущего узла используется как ключ сортировки.lang
Язык, алфавит которого использовался для определения порядка сортировки.Если значение lang не задано, язык определяется по настройкам системы.data-type
Тип данных строк.В следующей таблице перечислены возможные значения атрибута data-type.text
Указывает, что ключи сортировки должны сортироваться в алфавитном порядке.
number
Указывает, что ключи сортировки нужно преобразовать в числа, а затем отсортировать согласно численным значениям.Ключ сортировки преобразуется в число.
QName
Расширяется, преобразуясь в расширенное имя.Расширенное имя указывает на тип данных.
Если тип данных не задан, по умолчанию будет использован тип выражения.
order
Порядок сортировки строк.По умолчанию используется значение "ascending".case-order
Указывает порядок сортировки строк с учетом регистра.Значение по умолчанию — "upper-first", то есть строки с заглавными буквами ставятся на первые места.
Сведения об элементе
Количество вхождений |
Без ограничений |
Родительские элементы |
|
Дочерние элементы |
(Нет дочерних элементов) |
Замечания
Этот алгоритм сортировки игнорирует тире.Это метод сортировки слов, который ставит рядом слова «co-op» и «coop».
Например, слова будут отсортированы в следующем порядке:
30a-allow
30-allow
Таким образом, эта сортировка обращается со словами, как если бы они представляли собой:
30aallow
30allow