我想在 XForms 中使用 XPath 连接两个节点集值。
我知道 XPath 有一个 concat(string, string) 函数,但我将如何连接两个节点集值?
开始编辑: 我尝试了 concat 函数..我尝试了这个..以及它的变体以使其工作,但它没有
<xf:value ref="concat(instance('param_choices')/choice/root, .)"/>
结束编辑
下面是我想要实现的简化代码示例。
XForms 模型:
<xf:instance id="param_choices" xmlns="">
<choices>
<root label="Param Choices">/param</root>
<choice label="Name">/@AAA</choice>
<choice label="Value">/@BBB</choice>
</choices>
</xf:instance>
我目前拥有的 XForms ui 代码:
<xf:select ref="instance('criteria_data')/criteria/criterion" appearance="full">
<xf:label>Param choices:</xf:label>
<br/>
<xf:itemset nodeset="instance('param_choices')/choice">
<xf:label ref="@label"></xf:label>
<xf:value ref="."></xf:value>
</xf:itemset>
</xf:select>
(如果用户选择“名称”复选框..)XML 输出是:
<criterion>/@BBB</criterion>
然而!我想将根节点集值与当前选择节点集值结合起来。
本质上:
<xf:value ref="concat(instance('param_choices')/choice/root, .)"/>
或者
<xf:value ref="(instance('definition_choices')/choice/root) + ."/>
实现以下 XML 输出:
<criterion>/param/@BBB</criterion>
关于如何做到这一点的任何建议?(我对 XPath 和 XForms 还很陌生)
ps 我输入的内容对我来说很有意义,但是如果您无法弄清楚我在问什么,请告诉我..
谢谢!