XSLT 1.0如何测试数字



如何测试元素的值是否为数字/可转换为数字?

我需要做的是复制value,如果它是一个数字,如果它是一个字符串

用99代替它

string(number($x)) = 'NaN'测试$x是否可转换为一个数字

您可以使用'number'函数-

http://www.zvon.org/xxl/XSLTreference/Output/function_number.html

除了正确答案 @Michael Kay:

number($x) = number($x)

这个表达式是true(),当$x可以被转换为一个数字

在这里我们使用以下事实:

  1. 如果$x不是数字,则number($x)根据定义为NaN

  2. NaN不等于任何值,甚至不等于NaN

现在,最后一个问题:

我需要做的是复制value,如果它是一个数字,并替换如果是字符串

则为99
使用

:

  $x * (number($x) = number($x))
+
  99 * not(number($x) = number($x))

说明:作为数字表达式的一部分,布尔值被转换为数字(true() -> 1, false() -> 0)。在上面的表达式中,+的一个参数将是0,一个参数将是1,这取决于$x是否为数字。

相关内容

  • 没有找到相关文章

最新更新