0

XForm調査があります。質問は、回答を収集するxf:instanceと同じモデルの別のxf:instanceに保持したいと思います。1つの例では、10個の質問を含むグループ。2番目の例では、10の回答を保持するグループ。2番目のインスタンスが送信されます。したがって、これは2つのリスト間の結合に似ています。

次のようなロジックを使用してみました。

<xf:output ref="instance('questions')/question[position()]/@text"></xf:output>

ただし、コンテキストは質問xf:instanceであるため、そのposition()は常に1を返します。index('current-repeater')を使用すると、表示された10個の質問すべてが更新され、最後にフォーカスされた繰り返し反復のインデックスの質問になります。

これを達成するためにxpathで一時変数を使用する方法はありますか?私は$variablesのさまざまな使用法を試しました。

<xf:output ref="instance('questions')/question[position() = (count(current()/preceding-sibling::*) + 1)]/@text"></xf:output>

ありがとう、

ジェイソン

4

2 に答える 2

1

解決策でもありませんか:

<xf:output value="instance('questions')/question[current()/position()]/@text"></xf:output>

current() 関数はコンテキスト ノードを返します。 http://www.w3.org/TR/xforms11/#fn-currentを参照してください。

于 2009-12-10T22:28:30.370 に答える
0

さて、これは現在サポートされていないことがわかりました。

"preceding-sibling::" などの軸は、XSLT 1.0 で記述された XSLTForms の XPath アナライザーではまだサポートされていません。

代わりに、次の行に沿って何かを行います。

<xf:instance id="positions">
  <data xmlns="">
    <position />
  </data
</xf:instance>

...

<xf:setvalue ref="instance('positions')/position">1</xf:setvalue>
<xf:setvalue ref="instance('positions')/position" value="count(instance('main')/path/to/things/thing)-1" />
etc.

次に、それらを使用します。

<xf:input ref="path/to/things/thing[instance('positions')/position]"> ...

xsltforms-support@lists.sourceforge.net から

于 2009-12-08T17:16:15.063 に答える