在xslt中实现多个条件

时间:2015-05-22 06:05:25

标签: xslt xslt-1.0

我有以下条件来检查我必须检查两个条件

1)ABSClassificationScheme =清算状态

2)并且如果第一个条件匹配则只检查cfStateId的第二个条件是accpt_novated_sw,清除完全和手动注册的cfStateId应该具有这三个值中的一个,那么在这种情况下它应该打印为真

所以我想出了以下这个条件请告知是否正确

    <xsl:template match="ABSClassificationScheme[
                            . = 'Clearing State' and 
                            ../cfStateId = 'accpt_novated_sw' or ./cfStateId='Clearing Complete' or ./cfStateId='manual_novated' ]">
   <xsl:value-of select="'true'"/>  
  </xsl:template>

但是现在它不适用于Clearing Complete和manual_novated你可以告诉我上面的实现是否正确

2 个答案:

答案 0 :(得分:1)

我可以在xpath中看到父轴:

../cfStateId = 'accpt_novated_sw'

将其更改为

./cfStateId = 'accpt_novated_sw'

或者您可以使用(不./,因为它是相同的):

cfStateId = 'accpt_novated_sw'

答案 1 :(得分:1)

我只是猜测这一点,但是如果你有几个累积(AND)条件,并且这些条件中的一个或多个由几个替代组成( OR)子条件,您必须将该条件放在括号中 - 因为在OR之前评估AND。