将Unicode字符转换为可视字符



我是XSLT的新手,我有一个问题,在XML上应用XSLT样式表后包含unicode,如β,在输出XML中转换为β。我需要的是防止XSLT样式表将unicode转换为Visual字符。

任何帮助我都将感激不尽。谢谢你,

与DOM不同,XPath使用的对象模型考虑已解析的所有实体和CDATA节。这意味着XPath将源文档中看到的β读取为字符β。所以XLST并没有转换任何东西。它只是读取并输出XPath选择的值。

但是您可以使用XSLT将β表示为结果文档中的字符实体。您可以通过在<xsl:output>中声明非utf encoding来选择该行为,例如"US-ASCII"或"ISO-8859-1"。

假设你有这样的来源:

<character>&#x03B2;</character>

使用<xsl:output encoding="iso-8859-1" />:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes" encoding="iso-8859-1" />
    <xsl:template match="character">
        <result><xsl:value-of select="."/></result>
    </xsl:template>
</xsl:stylesheet>

你可能会得到,这取决于你的处理器的实现

<result>&#946;</result>

<result>&#x3b2;</result>

表示相同的字符。

我不确定,但我认为如果您使用xsl:outputmethod="html"属性,该行为在XSLT 1.0处理器中是默认的。

相关内容

  • 没有找到相关文章

最新更新