如果我问得不恰当,我会提前道歉。我要说的话很难用言语表达。
我有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一起使用的内容:选择和取消选择事件。但我不知道把它们放在哪里,我试过的地方让我表现得很奇怪。
我目前正在实施以下措施:
<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文档(具有单独的节点)。不幸的是,我没有找到一个简单的解决方案,将它们最初插入到单独的节点中。
但是,所选的答案对于文本框非常有效,因此我选择它作为答案。
第二次编辑