简单 Xpath - 读取 XBL 中的子元素
我正在使用 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>
I am using orbeon and I am trying to read child element defined in XBL. Here is how my xform definition looks like
<fr:foobar ref="mynode" constraint="unique">
<fr:foo from="abc" to="def">
<fr:bar key="id" name="primary" />
</fr:foo>
</fr:foobar>
In XBL I can't seem to find an easy way to read the child element. I am obviously missing something simple.
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AVT 始终返回文本。因此
{fr:foo/fr:bar}
相当于{string(fr:foo/fr:bar)}
,在这种情况下不会执行您的操作预计。这是一个棘手的问题,我看到两种解决方案:
元素复制到实例中 (
) ,然后使用
指向该实例中的节点。An AVT always return text. So
{fr:foo/fr:bar}
is equivalent to{string(fr:foo/fr:bar)}
, which in this case won't do what you expect. This is a tricky one, and I see two solutions:<fr:bar>
elements into an instance with XSLT (<xsl:copy-of>
), and then point to the nodes in that instance with the<xxforms:variable>
.