Элемент <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", то есть строки с заглавными буквами ставятся на первые места.

Сведения об элементе

Количество вхождений

Без ограничений

Родительские элементы

xsl:apply-templates, xsl:for-each

Дочерние элементы

(Нет дочерних элементов)

Замечания

Этот алгоритм сортировки игнорирует тире.Это метод сортировки слов, который ставит рядом слова «co-op» и «coop».

Например, слова будут отсортированы в следующем порядке:

30a-allow

30-allow

Таким образом, эта сортировка обращается со словами, как если бы они представляли собой:

30aallow

30allow