私がこれをきちんと求めていないならば、私は前もって謝罪します..私が求めていることを言葉にするのは難しいです..
私は次のような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>
ありがとう!
最初の編集を終了
2番目の編集を開始します:
リストボックス(つまり、xf:selectappearance = "compact")の場合、同じノードでスペースを使用できるようにしてから、xslを使用してそのxmlを変換し、適切にフォーマットされた新しいxmlドキュメント(個別のノードを含む)を生成しました。残念ながら、元々別々のノードに挿入しても、それほど面倒な解決策は見つかりませんでした。
ただし、選択した回答はテキストボックスで非常にうまく機能するため、回答として選択したのはなぜですか。
2回目の編集を終了