我想用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尝试了一些东西,但它似乎没有影响,就像它是一个属性而没有文本节点。
如果您对如何“手动”构建语句有一些想法,那对我来说也是一个有效的解决方案。
提前多多感谢
martre
答案 0 :(得分:5)
尝试<xsl:output encoding="us-ascii"/>
,它会强制所有非ASCII字符使用十六进制或十进制字符引用进行序列化,无论它们是否以这种方式开始生效。