Xml 使用XSLT转换XSLT时保留实体引用

Xml 使用XSLT转换XSLT时保留实体引用,xml,xslt,xslt-2.0,Xml,Xslt,Xslt 2.0,我想用XSLT转换一些XSLT文件以获得新的XSLT文件,这实际上工作得很好。只有一个函数提供了问题:如果我复制/甚至尝试手动构建此函数 <xsl:function name="mr:get_xmlname"> <xsl:param name="name"/> <xsl:value-of select="replace($name,'[^A-Z|_|a-z|&#xC0;-&#xD6;|&#xD8;-&

我想用XSLT转换一些XSLT文件以获得新的XSLT文件,这实际上工作得很好。只有一个函数提供了问题:如果我复制/甚至尝试手动构建此函数

   <xsl:function name="mr:get_xmlname">
    <xsl:param name="name"/>

    <xsl:value-of 
        select="replace($name,'[^A-Z|_|a-z|&#xC0;-&#xD6;|&#xD8;-&#xF6;|&#xF8;-&#x2FF;|&#x370;-&#x37D;|&#x37F;-&#x1FFF;|&#x200C;-&#x200D;|&#x2070;-&#x218F;|&#x2C00;-&#x2FEF;|&#x3001;-&#xD7FF;|&#xF900;-&#xFDCF;|&#xFDF0;-&#xFFFD;|&#x10000;-&#xEFFFF;|\-|\.|0-9|&#xB7;|&#x0300;-&#x036F;|&#x203F;-&#x2040;]','_')"
    />
</xsl:function>

我最后总是会



尝试
,这将强制所有非ASCII字符使用十六进制或十进制字符引用进行序列化,无论它们是否以这种方式开始使用。

我认为没有办法在XML输入文档中保留字符引用。如果要确保在XSLT转换的结果中将这些字符序列化为字符引用,则需要定义字符映射。非常感谢您的快速帮助,“Windows-1252”是最终解决问题的编码输出,因为某些注释中包含一些非ascii字符