1

我正在渲染 XML Dom 对象并面临一个非常严重的问题。"
"一个问题是:每当我得到and时,我都想打破界限"¬"

在 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 中产生问题。

将不胜感激任何进一步的帮助。

4

1 回答 1

1

解决这个问题的方法是在处理 IE(至少 IE9 及以下)时使用&#xA;,而不是。&#10;

于 2013-04-23T09:28:10.857 回答