我有一个xml
<FIELD>
<FNAME>isFirstOfTheMonth</FNAME>
<TYPE>SVR_BOOLEAN</TYPE>
<VALUE>false</VALUE>
</FIELD>
<FIELD>
我正在尝试检查布尔值。如果它不是本月的第一个,那么显示文本
<xsl:if test="not(FIELD[FNAME='isFirstOfTheMonth']/VALUE) =false">
<fo:block font-family="Times New Roman" font-size="11.0pt" text-align="left">
<xsl:text>The liability is $</xsl:text>
<xsl:value-of select="FIELD[FNAME='amount]/VALUE" />
<xsl:text> effective </xsl:text>
<xsl:value-of select="FIELD[FNAME='StartDate']/VALUE" />
<xsl:text>.</xsl:text>
</fo:block>
</xsl:if>
当值为false时,我没有看到输出中的文本。
任何人都可以帮助我吗? BTW xsl版本1
答案 0 :(得分:1)
not(FIELD[FNAME='isFirstOfTheMonth']/VALUE) =false
我认为右括号是错误的。您正在将not
的结果与false
进行比较,是否要将VALUE
元素的内容与&#34; false&#34;?进行比较?在这种情况下,使用not-equals会更好:
FIELD[FNAME='isFirstOfTheMonth']/VALUE != 'false'
注意你需要在引号中放入字符串....因此
<xsl:if test="FIELD[FNAME='isFirstOfTheMonth']/VALUE != 'false'">
…
</xsl:if>