这是我的测试组件
<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 并重复使用它是问题所在。有任何想法吗?