如果我没有正确地问这个问题,我提前道歉..很难用语言表达我的要求..
我有 XForms 模型,例如:
<file>
<criteria>
<criterion></criterion>
</criteria>
</file>
我想要多个输入文本框来创建一个新的标准标签。
用户界面,例如:
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
我希望 XML 输出看起来像这样(一旦用户输入信息):
<file>
<criteria>
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>CCC</criterion>
</criteria>
</file>
我拥有它的方式不起作用,因为它看到 3 个输入字段都指向同一个标准标签。我该如何区分?
谢谢!我希望这有点道理!
开始第一次编辑
感谢您对基本文本框的回复!
但是,我现在需要使用列表框来执行此操作。但是对于我的生活,我无法弄清楚如何。我在某个地方读到了 xforms:select 和 deselect 事件。但我不知道将它们放在哪里,而且我尝试过的地方给了我非常奇怪的行为。
我目前正在实施以下内容:
<xf:select ref="instance('criteria_data')/criteria/criterion" selection="" appearance="compact" >
<xf:label>Choose criteria</xf:label>
<xf:itemset nodeset="instance('criteria_choices')/choice">
<xf:label ref="@label"></xf:label>
<xf:value ref="."></xf:value>
</xf:itemset>
</xf:select>
但是,当提交多个选择时,所有选择值都会插入到同一个节点中,并用空格分隔。
例如:
如果从列表框中选择了 AAA 和 BBB 和 FFF,则会生成以下 XML:
<criterion>AAA BBB FFF</criterion>
如何更改代码以使每个选择都位于单独的节点中?
即我希望它看起来像这样:
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>FFF</criterion>
谢谢!
结束第一次编辑
开始第二次编辑:
对于列表框(即 xf:select appearance="compact"),我最终允许空格出现在同一个节点中,然后使用 xsl 转换该 xml 以生成格式正确的新 xml 文档(具有单独的单个节点)。不幸的是,通过将它们最初插入单独的节点,我没有找到一个不那么繁琐的解决方案。
然而,所选答案对文本框非常有效,因此我选择它作为答案。
结束第二次编辑