将布尔值转换为 xml 中的数字

问题描述

我将在 XML (orbeon) 中将布尔值转换为数字,并且我在公式中使用数字,但它仍然显示布尔类型。

这是我的公式,我使用的是圆形但仍然显示正确:

round(seconds($total-time-calculation-mental)div 60) or round(seconds($control-2)div 60)

#Orbeon

解决方法

这实际上是一个 XPath 问题,而不是一个 XML 或 orbeon 问题。

XPath“或”运算符需要两个布尔值作为输入,并产生一个布尔值作为输出:TRUE 或 FALSE => TRUE。您作为输入提供的数字将转换为布尔值(0 = FALSE,任何其他 = TRUE),但没有理由将结果转换回。

你实际上期望这个表达式返回什么?

也许您在 (A = 5 或 6) 之类的结构中错误地使用了“或”来表示 (A = 5 或 A = 6)?

或者也许您已经想到了 Javascript 用法,其中 A || B的意思是“如果A存在则返回A,否则返回B”?