и и или или условие в одном выражении XML - PullRequest
2 голосов
/ 24 июня 2010

Я хочу построить оператор, содержащий и и несколько или выражения в xml, как

<xsl:choose>
  <xsl:when test="VAR1 and VAR1/text() != 'A' | 'B' | 'C'">
   <xsl:value-of select="$data"/>
  </xsl:when>
  <xsl:otherwise>0.0</xsl:otherwise>
</xsl:choose>

, но его не работает ...

1 Ответ

1 голос
/ 24 июня 2010

Одно решение, которое позволяет избежать множественных сравнений: :

VAR1 and VAR1/text()[not(contains('A+B+C', .))]

где строка + гарантированно не содержится в VAR1/text() (если «+» не удовлетворяет этому требованию, замените «+» на строку, которая соответствует)

Обратите внимание , что в вопросе есть вероятная логическая ошибка:

x != 'A' or x != 'B' or x != 'C'

всегда верно

Скорее всего, вы хотели:

x != 'A' and x != 'B' and x != 'C'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...