需在xsl:value-of或xsl:copy-of中设disable-output-escaping=”yes”,当输出含HTML/XML标签的字符串且需浏览器解析为真实标记而非文本时使用,但仅对字符串值有效、有XSS风险,推荐用xsl:copy-of结构化内容或xsl:analyze-string替代。
disable-output-escaping 是 XSLT 中用于防止 XML 特殊字符被自动转义的机制,常用于需要原样输出 HTML 标签、XML 片段或包含 、& 等字符的文本场景。
什么时候需要用 disable-output-escaping?
当 XSLT 的 xsl:value-of 或 xsl:copy-of 输出的内容本身是已格式化的标记(比如一段含 HTML 标签的字符串),而你希望浏览器或下游处理器将其当作真实标签解析,而非纯文本显示时,就需要禁用转义。
例如:源数据中有一个字段值为 "重点",默认输出会变成 zuojiankuohaophpcnemyoujiankuohaophpcn重点zuojiankuohaophpcn/emyoujiankuohaophpcn(显示为文字),启用后才真正渲染为斜体。
基本语法与写法
只在 xsl:value-of 或 xsl:copy-of 中通过 disable-output-escaping="yes" 属性启用: