XSLT模板(template)和应用模板(apply-templates)怎么用

煙雲
发布: 2025-12-19 14:42:09
原创
744人浏览过
xsl:template定义处理规则,xsl:apply-templates调度执行节点;前者通过match匹配并声明输出逻辑,后者通过select、mode等控制处理范围与方式,二者协同构成XSLT核心驱动机制。

xslt模板(template)和应用模板(apply-templates)怎么用

xsl:template 定义“怎么处理某类节点”,xsl:apply-templates 决定“现在去处理哪些节点”——两者配合,构成 XSLT 的核心驱动逻辑。

模板(xsl:template)是规则说明书

它声明:当遇到匹配的节点时,该输出什么、怎么计算、是否递归处理子节点。

企业软件介绍主页html模板
企业软件介绍主页html模板

一款多用途的企业软件前端HTML模板。IT软件服务公司网站响应式单页模板。基于CSS、JS、HTML模块化原则创建的。如果您的站点不需要所有元素,那么可以轻松地删除不必要的组件。模板的代码干净,友好,注释良好。这使得编辑和自定义模板变得很容易。

企业软件介绍主页html模板 350
查看详情 企业软件介绍主页html模板
  • 必须有 match 属性(除非用 name 做命名模板),比如 match="book"match="/"
  • match 值是 XPath 表达式,处理器靠它判断“这个模板管不管用”
  • 模板内可写 HTML、文本、函数(如 <value-of select="title"></value-of>),也可嵌套 <apply-templates></apply-templates> 继续向下处理
  • 多个模板可能同时匹配一个节点,XSLT 按优先级(priority)或声明顺序(后声明胜出)选一个执行

应用模板(xsl:apply-templates)是调度员

它不自己输出内容,而是告诉处理器:“请按规则,去处理我挑出来的这些节点”。

  • 不写 select 时,默认处理当前节点的所有直接子节点
  • 写了 select="chapter",就只处理 <chapter></chapter> 子元素;写 select="*" 就处理所有子元素(不含文本节点)
  • mode="summary",就只触发带 mode="summary" 的模板,实现同一节点多种输出方式
  • 内部可嵌 <sort></sort> 控制顺序,或 <with-param></with-param> 向目标模板传参

典型配合流程

以 XML 中 <book><title>XML入门</title> <chapter>基础</chapter></book> 为例:

  • 主模板 match="/" 输出 ,然后 <apply-templates select="book"></apply-templates>
  • 触发 match="book" 模板:输出 <h1></h1>,再用 <apply-templates></apply-templates>(无 select)处理它的子节点
  • 遇到 <title></title>,匹配 match="title" 模板,输出文字;遇到 <chapter></chapter>,匹配 match="chapter" 模板,输出编号和标题

容易忽略的关键点

  • <apply-templates></apply-templates> 不等于 “复制子节点内容”——它会重新走匹配流程,没写对应模板的节点可能被跳过或走内置规则
  • 没写 <apply-templates></apply-templates> 的模板,其子节点默认不处理(除非用了 <value-of></value-of> 这类直接取值指令)
  • mode 不是可有可无的修饰,它是隔离不同处理逻辑的必要手段,尤其在 import/override 场景中
  • select 表达式运行在当前上下文节点下,不是整个文档根,这点和 <for-each></for-each> 类似但语义不同
基本上就这些。写模板像写条件分支,调用模板像发任务单——理清谁定义规则、谁触发执行,XSLT 就不难上手。

以上就是XSLT模板(template)和应用模板(apply-templates)怎么用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号