我有一个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
not(FIELD[FNAME='isFirstOfTheMonth']/VALUE) =false
我认为右括号放错地方了。您正在比较not
和false
的结果,是否要将VALUE
元素的内容比较为"false"?在哪种情况下使用不相等会更好:
FIELD[FNAME='isFirstOfTheMonth']/VALUE != 'false'
注意,您需要将字符串放在引号中…。因此
<xsl:if test="FIELD[FNAME='isFirstOfTheMonth']/VALUE != 'false'">
…
</xsl:if>