换行的 XSL 呈现在 IE8 和 IE9 之间有所不同



我正在呈现XML Dom对象,并面临一个非常严重的问题。一个问题是:当我得到"
""¬"时,我想要断行

在IE8中:它正确地呈现"&#10;"(新行)并将<br>标记放在它找到"&#10;"的地方。但是在IE9中,只要找到"&#10;"和空格(单个空格),它就会将每个单词分成新行

<xsl:template name="for-each-character">
        <xsl:param name="data"/>
        <xsl:variable name="lf"><xsl:text>&#10;</xsl:text></xsl:variable>
        <xsl:variable name="sr"><xsl:text>&#172;</xsl:text></xsl:variable>
        <xsl:if test="string-length($data) &gt; 0">
        <xsl:value-of select="substring($data,1,1)"/>
        <xsl:if test="substring($data,1,1) = $sr or substring($data,1,1) = $lf">
            <br/>
        </xsl:if>
            <xsl:call-template name="for-each-character">
                <xsl:with-param name="data" select="substring($data,2)"/>
            </xsl:call-template>
        </xsl:if>
</xsl:template>

IE8输出:

你好,这是一个新的文本¬
在指定字符

之后

IE9输出:

你好
这个

....对于

预期输出应该是(IE8和IE9(或>=IE9):

你好,这是一个新的文本¬
在指定字符

之后

以上模板在Chrome和IE8中正常工作,但在IE9中产生问题。

感谢您的帮助

解决方案是在处理IE(至少IE9及以下)时使用&#xA;而不是&#10;

最新更新