XSL(Extensible Stylesheet Language)是一种用于转换和格式化XML文档的语言。在XSL处理过程中,字符转义是一个常见问题,特别是在处理特殊字符时。
<
, >
, &
, "
, '
等字符需要转义,因为它们有特殊含义。<!-- 在XSL中手动转义 -->
<xsl:text><div>Hello & World</div></xsl:text>
<xsl:value-of select="some/node" disable-output-escaping="yes"/>
注意:disable-output-escaping
不是所有处理器都支持,且可能带来安全风险(XSS)。
<xsl:text disable-output-escaping="yes"><![CDATA[<div>Hello & World</div>]]></xsl:text>
<xsl:template name="escape-html">
<xsl:param name="text"/>
<xsl:value-of select="replace(replace(replace(replace(replace($text, '&', '&amp;'), '<', '&lt;'), '>', '&gt;'), '"', '&quot;'), ''', '&apos;')"/>
</xsl:template>
disable-output-escaping
,因为它可能导致不可移植的代码。xsl:character-map
定义自定义转义规则。<xsl:character-map name="html-entities">
<xsl:output-character character="&" string="&"/>
<xsl:output-character character="<" string="<"/>
</xsl:character-map>
没有搜到相关的文章