首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XForms,XSLTForms外部联接

XForms,XSLTForms外部联接
EN

Stack Overflow用户
提问于 2009-12-05 02:21:01
回答 2查看 630关注 0票数 0

我有一个XForm调查。我希望将问题放在与收集答案的xf:实例相同的模型的一个单独的xf:实例中。在一个例子中,一个包含10个问题的组。在第二种情况下,一个组来保存10个答案。将提交第二个实例。因此,这类似于两个列表之间的连接。

我尝试过使用如下逻辑:

代码语言:javascript
复制
<xf:output ref="instance('questions')/question[position()]/@text"></xf:output>

但是position()总是返回1,因为上下文是问题xf:instance。使用索引(‘current-repeater’)将所有显示的10个问题更新为最近聚焦的重复迭代的索引中的问题。

有没有办法在xpath中使用临时变量来实现这一点?我尝试过$variables的各种用法,甚至:

代码语言:javascript
复制
<xf:output ref="instance('questions')/question[position() = (count(current()/preceding-sibling::*) + 1)]/@text"></xf:output>

谢谢,

杰森

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-09 01:16:15

好吧,事实证明目前还不支持:

使用XSLT1.0编写的XSLTForms的XPath分析器还不支持像“preceding sibling::”这样的轴。

取而代之的是,按照以下思路做一些事情:

代码语言:javascript
复制
<xf:instance id="positions">
  <data xmlns="">
    <position />
  </data
</xf:instance>

...

<xf:setvalue ref="instance('positions')/position">1</xf:setvalue>
<xf:setvalue ref="instance('positions')/position" value="count(instance('main')/path/to/things/thing)-1" />
etc.

然后使用它们:

代码语言:javascript
复制
<xf:input ref="path/to/things/thing[instance('positions')/position]"> ...

来自xsltforms-support@lists.sourceforge.net

票数 0
EN

Stack Overflow用户

发布于 2009-12-11 06:28:30

解决方案不也是:

代码语言:javascript
复制
<xf:output value="instance('questions')/question[current()/position()]/@text"></xf:output>

current()函数返回上下文节点,参见http://www.w3.org/TR/xforms11/#fn-current

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1848760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档