我在XSLT處理器的行爲中遇到了一些特殊的差異。我想知道這背後的原因是什麼,以及在處理器差異的某處是否有完整的概述。
我測試了以下簡單的變換(具有虛設輸入):XSLT文本輸出處理器差異
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>1=
2=
3=
4=

end</xsl:text>
</xsl:template>
</xsl:stylesheet>
運行,輸出爲:
1=
2=
3=
4=
end
在所有情況下,以十六進制在=
後,並在4=
行後,兩個字符已被添加,0D
和0A
。 顯然,XML間諜替換爲&xA;
或&xD;
由全CR + LF發生時被請求的順序CR和LF,後右彼此除了每個請求,(見3 =部分)。
但saxon9he運行的時候,我得到我運行了2.0版處理器1.0樣式的警告,並且輸出
1=
2=3=
4=
end
在這種情況下,&xA;
所有的請求都取而代之的是0D 0A
(所以在LF前添加了CR),但是對於&xD;
的請求輸出所請求的CR,而不是另外的LF。
在XML間諜重新運行XSLT版本設置爲2.0給出了相同的結果爲1.0,所以我想這是不是導致此兩個XSLT版本不同的約定。
很可能,這只是我們必須瞭解的工具之間的差異,但我想知道這個問題是否還有更多要說的。
如果輸出在樣式表文件,一個期待與單一CR RESP的第二個版本。 LF類。 – 2012-02-06 23:47:25