2012-09-13 21 views
2

對xml文檔和xslt使用不同的編碼會有什麼影響。對xslt使用不同的編碼

XSLT樣式表將具有輸出編碼的UTF-8,輸入XML將具有不編碼聲明,並且將使用字符串來生成,內部的XSLT將是:

<xsl:variable name="doc" select="document('file.xml')"/> 

該文件是異8859-1。

使用不同的編碼會影響輸出嗎?

+0

猜測:根據您使用的變壓器實施情況,您將得到不同的結果。如果沒有聲明編碼,我懷疑操作系統編碼將被使用(這將在不同的計算機上有所不同)。簡單的出路:做utf8中的_everything_ :) – kritzikratzi

回答

3

由XSLT操作的樹是抽象對象,通常(但不一定)通過解析XML文檔來創建。這些抽象樹中的字符來自ISO 10646和Unicode的字符集;在構建樹的任何表示之前,XML解析器使用用於輸入XML的編碼的任何變化。

因此,您的問題的答案是:如果所使用的XML解析器知道輸入編碼,則不同編碼對輸入的影響爲零。如果XML解析器不知道並接受這些編碼,那麼效果就是讓XSLT引擎根本不可能讀取輸入。