我正在渲染XML Dom对象并面临一个非常严重的问题。一个问题是:
每当我得到" "
和"¬"
时,我想打破这一行。
在IE8中:它正确呈现" "
(新行)并将<br>
标记放在找到" "
的位置。但是在IE9中,它将每个单词分成新的行,无论它在哪里找到" "
和一个空格(单个空格)
<xsl:template name="for-each-character">
<xsl:param name="data"/>
<xsl:variable name="lf"><xsl:text> </xsl:text></xsl:variable>
<xsl:variable name="sr"><xsl:text>¬</xsl:text></xsl:variable>
<xsl:if test="string-length($data) > 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(或&gt; = IE9)中:
你好这是一个正在进行新行的文字。
在规范字符之后
以上模板在Chrome和IE8中正常运行,但在IE9中会产生问题。
欢迎任何进一步的帮助。
答案 0 :(得分:1)
解决这个问题的方法是在处理IE时使用

而不是
(至少IE9及以下)。