使用 XSLT 转换 XSLT 时保留实体引用
Preserving entity references when transforming XSLT with XSLT
我想用 XSLT 转换一些 XSLT 文件以获得新的 XSLT 文件,这实际上工作得很好。只有一个功能出现问题:如果我复制/或者即使我尝试手动构建此功能
<xsl:function name="mr:get_xmlname">
<xsl:param name="name"/>
<xsl:value-of
select="replace($name,'[^A-Z|_|a-z|À-Ö|Ø-ö|ø-˿|Ͱ-ͽ|Ϳ-῿|‌-‍|⁰-↏|Ⰰ-⿯|、-퟿|豈-﷏|ﷰ-�|𐀀-|\-|\.|0-9|·|̀-ͯ|‿-⁀]','_')"
/>
</xsl:function>
我总是得到
<xsl:function name="mr:get_xmlname">
<xsl:param name="name"/>
<xsl:value-of
select="replace($name,'[^A-Z|_|a-z|À-Ö|Ø-ö|ø-˿|Ͱ-ͽ|Ϳ-|-|⁰-|Ⰰ-|、-|豈-﷏|ﷰ-�|-|\-|\.|0-9|·|̀-ͯ|‿-⁀]','_')"
/>
</xsl:function>
但实际上我希望它保持原样。我已经使用 disable-output-escaping 尝试了一些东西,但它似乎没有任何影响,因为它是一个属性并且没有文本节点。
如果您对我如何构建语句有一些想法 "manually",这对我来说也是一个可行的解决方案。
非常感谢
马特
尝试 <xsl:output encoding="us-ascii"/>
,这将强制所有非 ASCII 字符使用十六进制或十进制字符引用进行序列化,无论它们是否以这种方式开始。
我想用 XSLT 转换一些 XSLT 文件以获得新的 XSLT 文件,这实际上工作得很好。只有一个功能出现问题:如果我复制/或者即使我尝试手动构建此功能
<xsl:function name="mr:get_xmlname">
<xsl:param name="name"/>
<xsl:value-of
select="replace($name,'[^A-Z|_|a-z|À-Ö|Ø-ö|ø-˿|Ͱ-ͽ|Ϳ-῿|‌-‍|⁰-↏|Ⰰ-⿯|、-퟿|豈-﷏|ﷰ-�|𐀀-|\-|\.|0-9|·|̀-ͯ|‿-⁀]','_')"
/>
</xsl:function>
我总是得到
<xsl:function name="mr:get_xmlname">
<xsl:param name="name"/>
<xsl:value-of
select="replace($name,'[^A-Z|_|a-z|À-Ö|Ø-ö|ø-˿|Ͱ-ͽ|Ϳ-|-|⁰-|Ⰰ-|、-|豈-﷏|ﷰ-�|-|\-|\.|0-9|·|̀-ͯ|‿-⁀]','_')"
/>
</xsl:function>
但实际上我希望它保持原样。我已经使用 disable-output-escaping 尝试了一些东西,但它似乎没有任何影响,因为它是一个属性并且没有文本节点。
如果您对我如何构建语句有一些想法 "manually",这对我来说也是一个可行的解决方案。
非常感谢
马特
尝试 <xsl:output encoding="us-ascii"/>
,这将强制所有非 ASCII 字符使用十六进制或十进制字符引用进行序列化,无论它们是否以这种方式开始。