<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-templatesxsl:for-each

子元素

(无子元素)

备注

此排序算法在排序时忽略破折号。 这是“单词排序”的方法,用于将“co-op”之类的单词排在“coop”的旁边。

例如,生成以下排序顺序:

30a-allow

30-allow

因此,排序将这两项看作:

30aallow

30allow