Как обратиться к родительскому экземпляру в элементе xf:repeat?

У меня есть экземпляр «names», который содержит имена, а другой — имена и номера телефонов.

<xf:repeat nodeset="instance('names')/name">
    <xf:output ref="instance('address-book')[name='????']/phone_no"/>
</xf:repeat>

Что я должен поставить вместо вопросительных знаков (????), чтобы я мог сослаться на instance('names')/name ! Путаешься в контексте.

Я попробовал следующее, что не сработало, а также показалось неправильным, просто взглянув на него.

<xf:repeat nodeset="instance('names')/name">
    <xf:output ref="instance('address-book')[name= name]/phone_no"/>
</xf:repeat>

Нужно отметить, что движок xforms — XSLTForms.


person Crusaderpyro    schedule 26.09.2016    source источник
comment
Попробуйте использовать current() (например: <xf:output ref="instance('address-book')[name=current()]/phone_no"/>). Я не помню, работает ли это в xforms или нет, и я не могу проверить в данный момент.   -  person Daniel Haley    schedule 26.09.2016
comment
Ах, да ! Правильно. Это работает.   -  person Crusaderpyro    schedule 26.09.2016


Ответы (1)


Благодаря комментарию Дэниела Хейли выше. Использование current() решает проблему.

<xf:repeat nodeset="instance('names')/name">
    <xf:output ref="instance('address-book')[name= current()]/phone_no"/>
</xf:repeat>
person Crusaderpyro    schedule 26.09.2016