XSLT排序核心是xsl:sort元素,须置于xsl:for-each或xsl:apply-templates内;支持按元素、属性、表达式排序,可指定data-type和order实现数值/字符串/日期等多类型升降序,允许多级排序。
用XSLT给XML排序,核心是 xsl:sort 元素,它必须放在 xsl:for-each 或 xsl:apply-templates 内部,用来指定排序依据和规则。
最常用的是按元素文本内容升序排列:
这里 select="title" 表示按 子元素的文本值排序,默认升序(order="ascending"),不写也可省略。
数值、日期、字符串默认都按字符串比较,容易出错。需显式指定 data-type 和 order:

多个 xsl:sort 元素顺序即优先级顺序。例如先按作者姓氏、再按书名:
注意:第二级排序只在第一级相同时生效,逻辑与 SQL 中 ORDER BY last_name, title 一致。
除了子元素,还能按属性值或任意 XPath 表达式排序:
id 属性数值排序只要 select 返回一个有效值(字符串、数字或布尔值),就能作为排序键。