使用libxslt时如何将
添加为文本?
或者,或者,通过生成不同的输出,使包括Firefox在内的所有浏览器在td/title
元素中正确显示换行符?
我使用的xslt代码:
<td>
<xsl:attribute name="title">
<xsl:for-each select="input/item">
<xsl:if test="position()!=1"><xsl:text>
</xsl:text></xsl:if>:<xsl:value-of select="."/>
</xsl:for-each>
</xsl:attribute>
</td>
这适用于应用Saxon9he,例如导致
<td title="item1
item2
item3"/>
但是当我使用libxslt
(php的一部分)作为XSLT 1.0处理器,并运行与上面相同的代码时,我在结果文件中得到了真实的换行符:
<td title="item1
item2
item3"/>
导致Firefox错误地显示工具提示(没有换行)。
所以我假设我必须将disable-output-escaping
属性添加到<xsl:text>
,如下所示:
<xsl:text disable-output-escaping="no">
</xsl:text>
但这没有效果。
答案 0 :(得分:0)
因此,评论和测试的结论是它是Firefox中的一个错误,但并非所有版本中都存在错误:9.01甚至不显示
;对; 10.0不显示换行符,但显示
作为换行符,12.0 / 13.0正确显示。
案件结案。