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

旧版Orbeon Forms HTTP服务动态路径参数XPath取值问题

旧版Orbeon Forms HTTP服务动态路径参数配置方案

问题原因

各类XPath写法不生效的核心原因是HTTP服务的资源URL配置项中,XPath默认执行上下文不在表单数据实例根节点下,直接写相对路径、短路径都无法定位到表单字段节点。
网传示例http://localhost/RESTFUL/GETADDRESS/{/*/bar/foo}仅适用于手动给HTTP服务绑定了自定义请求实例的场景:默认Orbeon表单运行时的表单数据存在名为fr-form-instance的实例中,必须显式定位到该实例才能取到字段值。

正确配置语法

旧版本Orbeon Forms(不支持fr:control-string-value()的版本)中,拼接字段值到URL路径的写法如下:

http://你的服务地址/接口前缀/{instance('fr-form-instance')//你的字段名}

举个实际例子,如果接口是/api/user/info,要拼接用户ID字段userId到路径中,最终资源URL写为:

http://internal.service/api/user/{instance('fr-form-instance')//userId}/info

常见踩坑说明

  • 字段名要填Form Builder中给控件配置的名称(Name)属性,不是控件显示的标签名,注意大小写完全匹配
  • 路径末尾不要加多余斜杠,类似{/*/testField/}这类末尾带斜杠的写法会直接导致路径匹配失败
  • 如果字段在重复节/重复网格中,需要指定行索引,比如取第一行的testField值,写法为{instance('fr-form-instance')//testField[1]}
  • 不需要额外加.text()取文本,XPath定位到元素节点后会自动读取节点的字符串值,部分旧版本加.text()反而会返回空
  • xxf:value()、fr:control-value()、xxf:property()等函数在旧版本HTTP服务的XPath上下文中并未注册,调用后会直接返回空值,不要使用

有效性验证

可以先在资源URL中写入如下测试表达式:

test/{name(instance('fr-form-instance'))}

如果调用时拼接出来的路径是test/fr-form-instance,说明实例定位逻辑正常,再替换成对应字段路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:15:37