我试图在html td标签中只显示有限的字符,以下是我的代码, 如果“VAR1”少于10个字符,它会直接显示“...”,如何检查出来???
<td><xsl:value-of select="concat(substring(VAR1,1,10),'...')"/></td>
答案 0 :(得分:1)
如果你只想显示10个字符,但只显示...当原始字符串中有超过10个字符时,你可以在单个表达式中实现这一点
<xsl:value-of select="concat(
substring(VAR1,1,10),
substring('...', 1 div (string-length(VAR1) > 10)))"/>
所以,当 VAR1 是'123456789'时,它会输出这个
123456789
但当 VAR1 为'123456789012'时,它会输出此
1234567890...
为了解释这是如何工作的,下面的表达式将为true或false,具体取决于字符串的长度是否大于10
(string-length(VAR1) > 10)
在数值表达式中使用时,true计算结果为1,false计算结果为0.现在,如果字符串的长度超过10个字符,则完整表达式的计算方式如此
substring('...', 1 div (string-length(VAR1) > 10)))
= substring('...', 1 div true)
= substring('...', 1 div 1)
= substring('...', 1)
= '...'
所以,超过10个字符,最后得到'...'。
但是,当你的字符少于10个时,它会按照这样评估
substring('...', 1 div (string-length(VAR1) > 10)))
= substring('...', 1 div false)
= substring('...', 1 div 0)
= substring('...', (A very big number!))
= ''
因此,少于10个字符,子字符串不会返回任何内容。
答案 1 :(得分:0)
如果“VAR1”少于10个字符,它应显示“...”?如果这是你的问题,以下是答案
<td>
<xsl:choose>
<xsl:when test='string-length(VAR1) > 10'>
<xsl:value-of select=concat(substring(VAR1,1,10),'...')/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="VAR1"/>
</xsl:otherwise>
</xsl:choose>
</td>