我是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>β</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>β</result>
或
<result>β</result>
表示相同的字符。
我不确定,但我认为如果您使用xsl:output
和method="html"
属性,该行为在XSLT 1.0处理器中是默认的。