我正在使用orbeon,我正在尝试读取XBL中定义的子元素。这是我的xform定义的样子
<fr:foobar ref="mynode" constraint="unique">
<fr:foo from="abc" to="def">
<fr:bar key="id" name="primary" />
</fr:foo>
</fr:foobar>
在XBL中,我似乎找不到一种简单的方法来读取子元素。我显然错过了一些简单的事情。
<xforms:group xxbl:scope="inner">
<!-- works -->
<xxforms:variable name="foocontext">
<xxforms:sequence select="{fr:foo/@from}" xxbl:scope="outer" />
</xxforms:variable>
<!-- does not works -->
<xxforms:variable name="barcontext" as="node()?">
<xxforms:sequence select="{fr:foo/fr:bar}" xxbl:scope="outer" />
</xxforms:variable>
</xforms:group>
答案 0 :(得分:1)
AVT始终返回文本。因此{fr:foo/fr:bar}
相当于{string(fr:foo/fr:bar)}
,在这种情况下,它不会达到预期效果。这是一个棘手的问题,我看到了两个解决方案:
<fr:bar>
元素复制到具有XSLT(<xsl:copy-of>
)的实例中,然后使用{{1指向该实例中的节点}}。