检查xsl中的布尔值

时间:2015-04-07 14:35:20

标签: xml xslt-1.0

我有一个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 &#36;</xsl:text>
    <xsl:value-of select="FIELD[FNAME='amount]/VALUE" />
    <xsl:text>&#160;effective&#160;</xsl:text>
    <xsl:value-of select="FIELD[FNAME='StartDate']/VALUE" />
    <xsl:text>.</xsl:text>
  </fo:block>
</xsl:if>

当值为false时,我没有看到输出中的文本。

任何人都可以帮助我吗? BTW xsl版本1

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>