You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Orbeon Forms:如何在带type="xpath"的Action中使用IF/THEN/ELSE

Orbeon Forms带type="xpath"的Action中IF/THEN/ELSE的实现示例

一、在Action头部使用IF/THEN/ELSE

Action头部的条件需返回布尔值,通过XPath的if-then-else结构直接返回true()或false(),控制Action是否触发。

示例:根据输入框my-input的值是否大于10决定是否执行Action

if (number(/form/my-input) > 10) then true() else false()

将这段代码填入Action的「Condition」字段(头部条件区域),并设置Action的type="xpath"。当输入值大于10时,Action触发执行;否则不执行。

二、在Action主体使用IF/THEN/ELSE

Action主体的if-then-else用于分支处理逻辑,比如给不同字段赋值、执行不同操作。

示例1:基础分支赋值

根据输入值给result-output字段设置不同文本:

if (number(/form/my-input) > 10) 
then /form/result-output := "数值过大" 
else /form/result-output := "数值正常"

将这段代码作为Action主体内容,设置type="xpath"后,会自动根据条件完成赋值操作。

示例2:多条件嵌套分支

处理多场景的分支逻辑:

if (number(/form/my-input) > 20) 
then /form/result-output := "超出上限"
else if (number(/form/my-input) < 5)
then /form/result-output := "低于下限"
else /form/result-output := "数值符合要求"

嵌套的if-then-else可覆盖更多分支场景,同样放在Action主体并设置type="xpath"即可生效。

注意事项

  • XPath的if-then-else语法要求严格,then和else部分必须都有合法的XPath表达式,不能省略任意一方
  • 表单输入值默认是字符串类型,数值比较时需用number()函数转换,避免字符串比较导致的逻辑错误

内容的提问来源于stack exchange,提问作者Pete Atkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 16:52:07