提问人:Rahul 提问时间:6/21/2023 更新时间:6/21/2023 访问量:36
在 xsl 转换期间取消转义某些实体
Unescape some entities during xsl transformation
问:
我们做了一个 xsl 转换,将十六进制值转换为实体。
现在,在转换之后,有一些实体正在转换为相应的值,例如被转换为“&”,的情况与此类似。
为了保持实体不变,我们使用了以下 xsl 代码:-&
§
<xsl:stylesheet version='3.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:output method="xml" omit-xml-declaration="no" use-character-maps="mdash" />
<xsl:character-map name="mdash">
<xsl:output-character character="—" string="&mdash;"/>
<xsl:output-character character="&" string="&amp;" />
<xsl:output-character character=""" string="&quot;" />
<xsl:output-character character="'" string="&apos;" />
<xsl:output-character character="§" string="&sect;" />
</xsl:character-map>
<!--=================================================================-->
<xsl:template match="@* | node()">
<!--=================================================================-->
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
现在,大多数实体的转换都很好,但是对于 §,会显示以下错误:-
SXXP0003: Error reported by XML parser: The entity "sect" was referenced, but not declared.
有没有办法逃脱这个实体教派?
答:
2赞
Martin Honnen
6/21/2023
#1
使用数字字符引用,例如:§
<xsl:output-character character="§" string="&sect;" />
评论
0赞
Michael Kay
6/21/2023
或者,在样式表中包含一个 DOCTYPE,用于声明要引用的实体。
评论