如何测试元素的值是否为数字/可转换为数字?
我需要做的是复制value,如果它是一个数字,如果它是一个字符串
string(number($x)) = 'NaN'测试$x是否可转换为一个数字
您可以使用'number'函数-
http://www.zvon.org/xxl/XSLTreference/Output/function_number.html除了正确答案 @Michael Kay:
number($x) = number($x)
这个表达式是true()
,当$x
可以被转换为一个数字
在这里我们使用以下事实:
如果
$x
不是数字,则number($x)
根据定义为NaN
NaN
不等于任何值,甚至不等于NaN
现在,最后一个问题:
使用我需要做的是复制value,如果它是一个数字,并替换如果是字符串
则为99
:
$x * (number($x) = number($x))
+
99 * not(number($x) = number($x))
说明:作为数字表达式的一部分,布尔值被转换为数字(true()
-> 1, false()
-> 0)。在上面的表达式中,+
的一个参数将是0
,一个参数将是1
,这取决于$x
是否为数字。