有没有一种简单的方法可以在xslt中反转布尔值

时间:2010-11-17 23:07:11

标签: xpath

我想让0 => 1和1 => 0,在xslt中有一种简单的方法吗?

3 个答案:

答案 0 :(得分:2)

“不”功能?

http://zvon.org/xxl/XSLTreference/Output/function_not.html

虽然如果你真的想要这个号码,你需要使用“数字”功能

答案 1 :(得分:2)

如果$ value是数字数据类型的实例或可转换为数字,这将是最简单的表达式:

1 - $value

答案 2 :(得分:2)

有许多表达式分别采用01并评估10

@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