Это мой тестовый компонент
<fr:mycomponent name="test">
<fr:constraint instance="myinstance" xpath="item/@id" />
</fr:mycomponent>
Мне нужно прочитать значение атрибута экземпляра в XBL. Я делаю следующее.
<xsl:value-of select="./fr:constraint/@instance" />
или же
<xxforms:variable name="instance" select="xxforms:evaluate-avt='{/*/fr:constraint/@instance}'" />
Я должен объединить имя экземпляра и xpath, чтобы прочитать значения, в которых мне нужна помощь.
<xxforms:variable name="instance" select="concat('instance(''', xxforms:evaluate-avt='{/*/fr:constraint/@instance}'", ''')' />
Я могу прочитать xpath так же, как, например, я, а затем объединить его с вышеуказанной переменной.
<xxforms:variable name="xpath" select="xxforms:evaluate-avt='{/*/fr:constraint/@xpath}'" />
<xxforms:variable name="nodeset" select="concat($instance, '/', $xpath)" />
Я получу кучу элементов, которые я хотел бы повторить
<xforms:repeat nodeset="$nodeset">
<xforms:output value="." />
<xforms:repeat/>
Конкатенация строк для создания xpath и повторное его использование - вот где проблема. Есть идеи?