xquery - XQuery:从字符串(属性值)生成变量名
问题描述
我有一个运行我的 xquery 的框架,它包含一个 XML 配置文件,该文件将我可以在查询中使用的参数定义为变量,如下所示:
<text name="myVar" label="My Var"/>
这意味着用户将有一个对话框,其中包含一个名为“My Var”的字段,然后我可以像$myVar
在查询中一样访问其值。我不知道变量是如何声明的,也无法访问运行我的查询的 XQuery 代码。
但我想以通用方式访问我的参数,例如遍历所有参数,检查是否为空,在 HTML 中创建一个带有标签和值的表。我确实可以访问 XML 配置文件。这意味着我必须访问
$(/config/text/@name)
(以上显然不起作用)。
这怎么可能?
解决方案
好吧,变量名称$myVar
只能静态定义,因此除非您从配置文件中找到的内容以编程方式实际生成查询的源代码,否则这是不可能的。
我想我在这里要做的是将参数作为地图传递:
declare variable $params as map(xs:string, item()*);
do-something-with($params('myVar'));
地图中的条目可以静态($params?myVar)
或动态访问($params('myVar'))
推荐阅读
- android - Gradle 构建问题显示错误我正在使用 3.4
- python - 创建一个名为 Investment 的类,其中包含名为 principal 和 interest rate 的字段
- javascript - 获取 jsdom 窗口变量
- vba - 自动从“搜索文件夹”子文件夹复制内容
- javascript - Vuex 状态在加载 vue 组件之前没有更新?
- java - 在 JPA nativeQuery 中计数和分组
- laravel - 如何在 Laravel 中使用具有多重身份验证的验证电子邮件?
- keras - 如何在 keras 中微调加载的模型?
- python - Scipy Optimize ValueError:解包的变量太多
- reactjs - 更改悬停的图表旁边所有图表的背景颜色