XSLT的xsl:param怎么用 向样式表传递参数


xsl:param用于声明可外部传入的只读参数,提升XSLT复用性;需由处理器注入值,支持默认值,引用时XPath中须加$前缀,与xsl:variable本质不同。

xslt的xsl:param怎么用 向样式表传递参数

xsl:param 用于在 XSLT 样式表中声明可外部传入的参数,让样式表更灵活、可复用。它本身不提供值,值需由调用方(如 XSLT 处理器、程序代码或命令行工具)传入;若未传值,可设默认值。

基本写法和默认值

在 XSLT 中任意顶层位置(如 <stylesheet></stylesheet> 内、模板外)声明:

<xsl:param name="lang" select="'zh'" />

这表示参数名为 lang,若调用时没给值,就用默认值 'zh'(字符串字面量)。也可以绑定到一个表达式,比如:

<xsl:param name="showTitle" select="/book/@showTitle = 'true'" />

在模板中使用参数

声明后,参数名就可在 XPath 表达式中直接使用(不用加 $ 前缀):

  • 在匹配模板中:<if test="$lang = 'en">Hello</if>(注意:这里必须加 $)
  • 在属性值模板中:<div lang="{$lang}"></div>
  • 作为函数参数:<value-of select="concat('ID-', $id)"></value-of>

⚠️ 注意:在 XPath 上下文中引用参数必须加 $(如 $lang),但在 select 属性里写默认值时不用(那是静态表达式,不是变量引用)。

Opus Opus

AI生成视频工具

Opus 77 查看详情 Opus

从外部传入参数(常见方式)

参数值不能在 XSLT 文件里“自己设”,必须由处理器注入:

  • J*a(Transformer):transformer.setParameter("lang", "en");
  • Python(lxml):transform(xslt_root, lang=etree.XSLT.strparam("en"))(字符串需用 strparam 包装)
  • 命令行(xsltproc):xsltproc --stringparam lang en style.xsl doc.xml(--stringparam 用于字符串,--param 用于 XPath 表达式)
  • 浏览器(旧版支持):不支持运行时传参,需预编译或改用 JS 控制

和 xsl:variable 的关键区别

别把 xsl:param 当成普通变量用:

  • xsl:param 是只读的,且值来自外部;xsl:variable 是本地定义、不可重赋值,但值完全由样式表控制
  • 同名 param 和 variable 共存时,param 优先级更高(会覆盖同名 variable)
  • 全局 param 可被所有模板访问;局部 param(在模板内声明)仅限该模板作用域(XSLT 2.0+ 支持)

基本上就这些。用好 xsl:param 能让一个样式表适配多场景,比如切换语言、开关调试模式、动态过滤条件——不复杂但容易忽略。

以上就是XSLT的xsl:param怎么用 向样式表传递参数的详细内容,更多请关注其它相关文章!


# java  # python  # 如何用  # 作用域  # 区别  # 工具  # 浏览器  # 处理器  # js  # 湘潭网站建设方案优化  # 寿光seo网站推广  # 地产营销视频推广文案  # 佛山优化seo公司排名  # 合肥网站SEO源头厂家  # 桥头家具网站优化有哪些  # 怀柔关键词seo  # 湘乡营销推广案例  # 襄阳网站优化推广价格  # spa如何对seo优化  # 能在  # 但在  # 那是  # 复用  # 怎么处理  # 是否符合  # 命令行  # 默认值  # 样式表 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: Win10怎么设置快速启动 Win10开启快速启动设置方法  英雄联盟争者留名活动介绍  优化Google Charts Gauge:在数据库无数据时显示默认值  抖音手机分身两个账号怎么切换?分身两个系统是一样的吗?  CodeIgniter 3 中基于 MySQL 数据高效生成动态图表教程  QQ邮箱注册地址 免费获取QQ邮箱账号  谷歌浏览器官方镜像获取方法_谷歌浏览器网页版入口极速直达  如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签  yy漫画官方网站登录入口_yy漫画在线阅读页面地址  Chart.js 教程:自定义插件实现图表与图例间距调整  AO3永久镜像入口开放_AO3最新网址兼容所有浏览器  《洛克王国:世界》国家队搭配攻略  iPhone 14 Pro如何更改区域设置_iPhone 14 Pro地区语言修改教程  外媒评《燕云十六声》DIY载具新玩法:很像《塞尔达传说王国之泪》!  mysql归档数据怎么导出为csv_mysql归档数据导出为csv文件的方法  《飞猪旅行》购买汽车票方法  vivo浏览器怎么离线保存网页 vivo浏览器下载完整页面以便无网络时阅读  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  深入理解Python对象引用与链表属性赋值  《糖豆》添加舞曲方法  Linux如何开发轻量级数据服务模块_Linux服务化设计  解决Flex容器横向滚动内容截断与偏移问题  国际经济与贸易就业方向解析  批改网网页版登录 批改网电脑版学生登录入口  iCloud官方网站 iCloud网页版在线登录入口  192.168.1.1路由器后台入口 192.168.1.1默认登录入口  MacBook Pro词典使用指南  《画加》约稿流程  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  支付宝如何解绑云闪付_支付宝与云闪付账户关联解除方法  @Team是什么?揭秘团队含义  126邮箱网页在线登录2025_126邮箱网页版入口官方地址  如何使用 Optional 类型并满足 Pylint 的类型检查  研招网官方网站正版登录网址_中国研究生招生信息网官网首页  优化响应式标题底部边框:CSS实现技巧与最佳实践  在React中正确处理HTML input type="number"的数值类型  Retrofit根路径POST请求:@POST("/") 的应用与解析  《海贝音乐》均衡器设置方法  Linux如何自动分析系统异常日志_Linux日志智能检测  《合金装备4》有望推出重制版!制作人发话了  荣耀magicv5怎么上手测评  《绝区零》2.3前瞻|直播|内容介绍  《下一站江湖2》大雪山加入方法  汽水音乐车机版官网5.0 汽水音乐车机版5.0版本下载入口  Go Goroutine调度与并发执行深度解析  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  OPPO手机参数配置如何开启护眼模式_OPPO手机参数配置护眼模式开启指南  全球各国上班时间表外贸邮件时间  DeepSeek超全面指南:入门必看  firefox火狐浏览器最新官网主页_ firefox火狐浏览器平台入口直达官方链接 

 2025-12-20

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.