xsl:value-of Not Working

时间:2010-12-28 17:46:30

标签: xslt xpath

我在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',但在我显示此元素包含的值的位置()时,它不显示任何内容。

任何想法为什么会发生这种情况。感谢。

1 个答案:

答案 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()