我想让0 => 1和1 => 0,在xslt中有一种简单的方法吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
如果$ value是数字数据类型的实例或可转换为数字,这将是最简单的表达式:
1 - $value
答案 2 :(得分:2)
有许多表达式分别采用0
或1
并评估1
或0
。:
@Alejandro已经指出了一个最简单的表达式,这里有其他的表达式:
$a + $b - $v
这是@Alejandro公式(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)]
最后,这是节点 $a
和$b
的等效XPath 2.0表达式:
($a,$b) except $v