2012-08-29 2 views
1

의가 아닌 경우 :이이 choose 식으로 수행 할 수 있습니다 알고값이 나는 경우는 XSLT에서 다음을 표현하기 위해 노력하고있어 다음 XSLT

if (status != Disconnected || status != BadNumber || status != NoCallsAccepted || status != Fax) 

는하지만 난하고 싶지 않았다

<xsl:if test="not(@status = 'BadNumber') AND not(@status = 'Disconnected') AND not(@status = 'NoCallsAccepted') AND not(@status = 'Fax')"> 

을하지만이 오류를 구문에 이르게 :

나는 AND 및 OR 때를 적절한 양을 사용하여 다음과 다양한 변화를 시도했습니다 ... 템플릿에 너무 많은 상세를 추가합니다.

답변

1

로 더 컴팩트 한 형태로 표현 될 수있다

<xsl:if test= 
"not(contains('|BadNumber|Disconnected|NoCallsAccepted|Fax|', 
       concat('|', @status,'|') 
       ))"> 

을 XPath를 2.0 (XSLT 2.0)보다 컴팩트 한 표현이 가능합니다.

<xsl:if test="not(@status=('BadNumber','Disconnected','NoCallsAccepted','Fax'))"> 
+0

와우! '포함한다! ' 완전한! –

+0

@justnS : 천만에. –

1

나는 내 실수를 알아 냈다 ... 대문자와. 당신은 XSLT 2.0을 사용하는 경우

<xsl:if test="@status != 'BadNumber' and @status != 'Disconnected' and @status != 'NoCallsAccepted'and @status != 'Fax'"> 
0

, 당신은 간단하게 할 수 있습니다

<xsl:if test="not(@status=('BadNumber','Disconnected','NoCallsAccepted','Fax'))"> 
관련 문제