新闻中心

XSLT怎么禁用特殊字符的转义 disable-output-escaping

2025-12-14
浏览次数:
返回列表
disable-output-escaping="yes"仅对xsl:value-of和xsl:text生效,须配合xsl:output method="html"使用,现代浏览器不支持,推荐用xsl:copy-of或结构化处理替代。

xslt怎么禁用特殊字符的转义 disable-output-escaping

disable-output-escaping="yes" 是 XSLT 1.0 中控制输出是否转义特殊字符的关键属性,但它有明确的使用边界和常见陷阱,不能随意加就生效。

什么时候能用 disable-output-escaping="yes"

这个属性只对 <value-of></value-of><text></text> 生效,且仅在纯文本上下文中起作用

  • ✅ 正确:
  • ✅ 正确:<div>Hello</div>
  • ❌ 无效:(该属性对 copy-of 无意义)
  • ❌ 无效:放在 &lt;apply-templates&gt;&lt;/apply-templates&gt;&lt;for-each&gt;&lt;/for-each&gt; 上(语法错误)

必须配合 xsl:output method=&quot;html&quot; 使用

如果输出目标是 HTML 页面,务必声明:

&lt;xsl:output method=&quot;html&quot; encoding=&quot;UTF-8&quot; indent=&quot;yes&quot;/&gt;

否则即使设了 disable-output-escaping=&quot;yes&quot;,处理器仍可能按 XML 规则转义 &lt;code&gt;&gt; &

浏览器兼容性要注意

  • IE(老版本)和基于 Transformiix 的引擎(如旧版 Firefox)支持该属性
  • 现代 Chrome、Safari、Edge(Chromium 内核)不支持 disable-output-escaping,会忽略它
  • 如果必须兼容现代浏览器,推荐改用 <copy-of></copy-of> 替代(前提是源 XML 中存的是已解析的节点,不是字符串)

替代方案更可靠

disable-output-escaping 不可用或不稳定时:

  • <copy-of select="node()"></copy-of> 直接复制已构建好的元素树(要求数据本身是合法 XML 节点,不是字符串)
  • 把 HTML 片段拆成结构化字段(比如 <title></title>, <p></p> <div class="aritcle_card"> <a class="aritcle_card_img" href="/ai/2142"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680148596213.png" alt="Pippit AI"> </a> <div class="aritcle_card_info"> <a href="/ai/2142">Pippit AI</a> <p>CapCut推出的AI创意内容生成工具</p> <div class=""> <img src="/static/images/card_xiazai.png" alt="Pippit AI"> <span>133</span> </div> </div> <a href="/ai/2142" class="aritcle_card_btn"> <span>查看详情</span> <img src="/static/images/cardxiayige-3.png" alt="Pippit AI"> </a> </div> , <ul></ul> 分别映射),再用标准 XSLT 元素生成
  • 在数据层预处理:把含 HTML 的字段提前解析为 DOM 节点,再交给 XSLT 处理

实际例子:安全输出一段内联 HTML

假设 XML 中有:

&lt;content&gt;<p>欢迎</p><strong>加粗内容</strong>&lt;/content&gt;

XSLT 正确写法:

&lt;xsl:output method=&quot;html&quot; encoding=&quot;UTF-8&quot;/&gt;
&lt;xsl:template match=&quot;content&quot;&gt;
  &lt;xsl:value-of select=&quot;.&quot; disable-output-escaping=&quot;yes&quot;/&gt;
&lt;/xsl:template&gt;

→ 渲染为真正的 <p>欢迎</p> <strong>加粗内容</strong>,而非文字。

不复杂但容易忽略。

以上就是XSLT怎么禁用特殊字符的转义 disable-output-escaping的详细内容,更多请关注其它相关文章!


# 的是  # 雨湖区淘宝营销推广中心  # 西安什么是seo  # 上饶网站seo优化  # 武进企业网站优化招聘  # 汉堡影视网站建设  # 陕西企业网站建设优势  # 资阳seo优化推广收费  # 大型网站建设材料有哪些  # 随州网站优化形式  # 赣州数码公司网络营销推广  # 如何在  # 放在  # 加粗  # html  # 数据交换  # 结构化  # 如何将  # 不支持  # 不需要  # 特殊字符  # safari  # edge  # app  # 浏览器  # 处理器  # node 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Python getattr() 异常处理深度解析:避免程序意外退出  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  单12V-2&#215;6实现为RTX 5090供电750W!甚至都没敢跑分  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  菜鸟取件码是什么怎么查 最全查询渠道汇总  深入理解Promise链:如何在catch后中断then的执行  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口  J*aScript教程:根据元素文本内容动态设置背景色  不同用户不同价格! 索尼开启账户个性化定价测试  苹果手机如何防止被恶意App追踪  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  Go语言中对Map值调用带指针接收者方法:原理与最佳实践  Surface怎么安装系统 微软Surface Pro U盘重装win11教程  精准捕获:如何在页面中监听除特定元素外的所有点击事件  LINUX怎么设置定时任务_LINUX crontab配置教程  照顾宝贝2小游戏免费秒玩入口  晋江读书网页版在线登录 晋江读书电脑版官网  Composer如何在生产环境安全地执行composer update  EMS快递官网app_中国邮政速递物流手机客户端  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  2025-2030年全球乘用车销量预测:新能源成增长主力  React列表渲染与独立状态管理:避免全局状态影响局部更新  React Router v6 教程:构建认证保护的私有路由与重定向策略  J*a实现学校排课程序_面向对象结构化项目示例  如何使用CaptainHook和Composer管理Git钩子_在提交前自动运行代码检查的Composer配置  Shopware订单对象中获取产品自定义字段的正确方法  qq游戏免费畅玩入口_qq游戏电脑版快速启动  浏览器打开即用 美图秀秀网页版入口  AO3官网镜像链接 Archive of Our Own同人文在线浏览  QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口  必由学网页版入口 必由学官方平台直接访问  J*a应用程序首次运行自动创建文件与目录的最佳实践  如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略  qq游戏手机版下载安装_qq游戏移动端入口  Log4j Console Appender性能瓶颈与高并发优化策略  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  C++如何生成随机数_C++ random库使用方法与范围设置  汽水音乐在线解析 汽水音乐在线解析入口  如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  动漫花园资源网使用步骤_动漫花园资源网下载流程  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  J*a递归快速排序中静态变量的状态管理与陷阱  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  漫蛙网页登录入口 漫蛙漫画官方授权网址 

搜索