2015-05-22 4 views
0

У меня есть ниже условие, чтобы проверить, в котором я должен проверить два условия, что являетсяРеализация нескольких условий в XSLT

1) ABSClassificationScheme = Очистка Штата

2), и если первое условие соответствует только тогда проверьте второе условие, которое является cfStateId, accpt_novated_sw, Clearing Complete и manual_novated, которое является cfStateId, должно иметь одно из этих трех значений, тогда в этом случае оно должно напечатать true

, поэтому я придумал это условие ниже, пожалуйста, сообщите, правильно ли оно

<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> 

, но сейчас она не работает для очистки Complete и manual_novated вы можете, пожалуйста, сообщите мои выше реализации правильно или нет

+0

Ваш вопрос непонятен. Покажите нам пример ввода XML. –

+0

Также, пожалуйста, уточните второе условие, так как оно довольно нечитаемо. –

ответ

1

Я могу видеть родителькой ось в вашем XPath:

../cfStateId = 'accpt_novated_sw' 

Измените его

./cfStateId = 'accpt_novated_sw' 

или вы можете просто использовать (не ./ как это одно и то же):

cfStateId = 'accpt_novated_sw' 
1

Я просто предполагаю, на данный момент, но если у вас есть несколько кумулятивных (И) условий, и один или более из этих условий состоит из нескольких альтернативных (или) subconditions, вы должны поместите это условие в круглые скобки - потому что AND оценивается до OR.