如何用XSLT对XML节点进行排序 xsl:sort用法

发布时间 - 2026-01-07 00:00:00    点击率:
xsl:sort 是 XSLT 中嵌套在 for-each 或 apply-templates 内用于节点排序的指令,支持按子元素、属性、表达式等多级排序,需指定 select、data-type 和 order 属性。

xsl:sort 是 XSLT 中用于对节点集(如 产生的结果)进行排序的核心指令。它不单独使用,必须嵌套在支持排序的指令内部。

基本用法:在 for-each 中排序

最常见场景是对一组同级元素按某个字段升序或降序排列。例如 XML 中有多个 ,想按出版年份排序:


  
  

(出版于 )

说明:
select="year" 指定排序依据的子节点(也可用属性 @id、表达式 price * quantity 等)
data-type="number" 告诉处理器按数值比较(默认是字符串)
order="ascending" 表示升序(可选值为 ascendingdescending

多级排序:按主次条件依次排序

当第一排序字段相同时,可用多个 实现“先按作者姓氏,再按书名”这类复合逻辑:


  
  
  

/

注意:XSLT 按 出现顺序从上到下逐级应用,前面的优先级更高。

按属性或复杂表达式排序

排序依据不限于子元素,也可以是属性、函数结果或组合路径:

  • 按 ID 属性:
  • 按价格降序:
  • 按标题长度(XSLT 1.0 需配合 string-length()):
  • 忽略大小写排序(XSLT 1.0 中常用 translate()):

在 apply-templates 中排序(更推荐的结构化写法)

相比 for-each,用 apply-templates 更符合 XSLT 的声明式风格,排序逻辑同样有效:


  

关键点: 必须直接放在 开始标签和结束标签之间,且在 select 属性之后。


# 处理器  # app  # 排列  # String  # sort  # for  # select  # xml  # 字符串  # Length  # number  # 升序  # 多个  # 放在  # 降序  # 中有  # 这类  # 更高  # 可选  # 它不  # 最常见 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在万网自助建站中设置域名及备案?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  javascript中的try catch异常捕获机制用法分析  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何快速生成专业多端适配建站电话?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  详解CentOS6.5 安装 MySQL5.1.71的方法  Android okhttputils现在进度显示实例代码  北京企业网站设计制作公司,北京铁路集团官方网站?  如何快速搭建高效香港服务器网站?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何在Windows虚拟主机上快速搭建网站?  java ZXing生成二维码及条码实例分享  Laravel如何发送系统通知?(Notification渠道示例)  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel如何为API生成Swagger或OpenAPI文档  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  重庆市网站制作公司,重庆招聘网站哪个好?  北京的网站制作公司有哪些,哪个视频网站最好?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何快速搭建高效WAP手机网站吸引移动用户?  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Python图片处理进阶教程_Pillow滤镜与图像增强  清除minerd进程的简单方法  Laravel怎么调用外部API_Laravel Http Client客户端使用  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Java类加载基本过程详细介绍  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何在阿里云ECS服务器部署织梦CMS网站?  如何用已有域名快速搭建网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  北京网站制作公司哪家好一点,北京租房网站有哪些?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  详解Android中Activity的四大启动模式实验简述  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  专业商城网站制作公司有哪些,pi商城官网是哪个?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  深圳网站制作平台,深圳市做网站好的公司有哪些?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  做企业网站制作流程,企业网站制作基本流程有哪些?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何用wdcp快速搭建高效网站?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】