Фон:
Создание формы (с использованием XSLTForms), которая отправляется, затем пользователь может повторно отправить ее позже. Мы хотим, чтобы пользователь видел значения своего предыдущего представления рядом с вводом формы, поэтому мы загружаем 2 экземпляра «набор данных» и «набор старых данных». Это работает в большинстве случаев, но не там, где у нас есть повторы. по какой-либо причине метод position() всегда возвращает «1» при вызове данных из экземпляра «старого набора данных». Например:
<xf:repeat nodeset="instance('data-set')/references/reference">
<xf:group ref=".">
<xf:label>Reference <xf:output value="position()"/></xf:label>
<xf:input ref="/org_name">...</xf:input>
<xf:output ref="instance('old-data-set')/references/reference[position()]/org_name"/>
</xf:group>
</xf:repeat>
Метод position()
работает в метке, но всегда возвращает «1» при попытке получить значение из второго экземпляра. Например, приведенное выше производит:
<label>Reference 1</label>
<input>Org name 1</input>
<output>Old org name 1</output>
<label>Reference 2</label>
<input>Org name 2</input>
<output>Old org name 1</output>
<label>Reference 3</label>
<input>Org name 3</input>
<output>Old org name 1</output>
Как я могу вызвать position() повторения, чтобы я мог использовать его для получения правильного значения из экземпляра «старого набора данных»?