0


使用 libxslt 时如何添加为文本?
或者,或者,td/title通过生成不同的输出,使包括 Firefox 在内的所有浏览器在元素中正确显示换行符?

我使用的 xslt 代码:

<td>
    <xsl:attribute name="title">
        <xsl:for-each select="input/item">
            <xsl:if test="position()!=1"><xsl:text>&#xD;</xsl:text></xsl:if>:<xsl:value-of select="."/>
        </xsl:for-each>
    </xsl:attribute>
</td>

这在应用 Saxon9he 时效果很好,例如导致

<td title="item1&#xD;item2&#xD;item3"/>

但是当我使用libxslt(php 的一部分)作为 XSLT 1.0 处理器并运行与上面相同的代码时,我会在结果文件中得到真正的换行符:

<td title="item1
item2
item3"/>

导致 Firefox 错误地显示工具提示(没有换行符)。

所以我假设我必须添加disable-output-escaping属性<xsl:text>如下:

<xsl:text disable-output-escaping="no">&#xD;</xsl:text>

但这没有效果。

4

1 回答 1

0

所以评论和测试的结论是它是 Firefox 中的一个错误,但不是在所有版本中:9.01 甚至不显示&#xD;正确的; 10.0 不显示换行符,但显示&#xD;为换行符,12.0/13.0 都正确显示。

结案。

于 2012-06-17T19:08:19.040 回答