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:
-
—— 按数字降序排价格 -
—— 强制按字符串升序(如 ISO 格式日
期可直接比) -
—— 提取年份再数值排序
多级排序(主序+次序)
多个 xsl:sort 元素顺序即优先级顺序。例如先按作者姓氏、再按书名:
-
-
-
by
注意:第二级排序只在第一级相同时生效,逻辑与 SQL 中 ORDER BY last_name, title 一致。
按属性或表达式排序
除了子元素,还能按属性值或任意 XPath 表达式排序:
-
—— 按 id属性数值排序 -
—— 拼接后按全名排序 -
—— 按标题长度降序
只要 select 返回一个有效值(字符串、数字或布尔值),就能作为排序键。

期可直接比)






