我在Xsl中遇到了一些问题。
<xsl:if test="ShippingName != ''">
<tr>
<td colspan="6" style="border:none;" align="right">
<strong>Shipping Via</strong>
</td>
<td align="right">
<xsl:value-of select="ShippingName" />
</td>
</tr>
</xsl:if>
它传递测试条件(ShippingName!='')并将样式分配给'td',但在我显示此元素包含的值的位置()时,它不显示任何内容。
任何想法为什么会发生这种情况。感谢。
答案 0 :(得分:2)
此行为的一个可能原因是ShippingName
的字符串值仅包含空格字符。
<强>解决方案强>:
使用:
<xsl:strip-space elements="ShippingName"/>
或替换:
<xsl:if test="ShippingName != ''">
<强>与强>:
<xsl:if test="normalize-space(ShippingName)">
标准XPath函数normalize-space
从其参数someString
生成一个新字符串,其中所有前导和尾随空格都被丢弃,任何内部空格都被单个空格字符替换。如果someString
仅由空白字符组成,则它们都将被丢弃,而对空标记的测试为false()
,因为根据定义boolean('')
为false()
。