Существует множество выражений, которые принимают 0
или 1
и оценивают соответственно до 1
или 0
. :
@ Алехандро уже указал одно изпростейшие такие выражения, вот другие:
$a + $b - $v
Это обобщение формулы @ Алехандро (1 - $v
) и преобразование $a
в $b
и $b
$a
для любых двух чисел $a
и $b
$v = 0
Формально нужно записать это как: number($v = 0)
, но в XPath 1.0, если это выражение используется в других выражениях, гдеОжидается число, преобразование выполняется автоматически (за кадром).
, а также :
$v + 1 mod 2
и даже :
substring('01',$v+1)
В XPath 2.0 существует поддержка таких выражений на естественном языке :
if($v eq $a)
then $b
else $a
или намного короче:
($a,$b)[not(. eq $v)]
Наконец , это эквивалентное выражение XPath 2.0 для узлов $a
и $b
:
($a,$b) except $v