比较Orbeon表单中重复部分中的值时出现的问题

时间:2013-10-09 07:40:39

标签: orbeon xforms

我正在开发Orbeon表单,我有一个与功能相关的问题,如下所述。 我有一个表单,其中包含如下重复字段,可通过单击“添加”按钮动态添加。 我在重复部分有两个字段。我也有一个条件,比如必须将字段与同一行中的字段进行比较,还要与前一个字段和下一行中的字段进行比较。

我有一个像这样的实例:                                              

 1.constraint="if(.!='')
         then
       (. < ../two and . > ../preceding::number/two)
       else
       true()"/>
 2.constraint="if(.!='' )
    then 
    (. > ../one  and . < ../following-sibling::number/one)
    else
    true()"/>


 <number> is under repeat condition. 
 1.In this,i am trying to compare number/one with <two> in the same row and the     preceding row.
 2.In this,i am trying to compare number/two with <one> in the same row and the     next preceding row.

 I have to add like 10 times of these fields.When it is added after 3rd time,the logic doesn't work properly.

 Kindly let me know what happens in this case.

1 个答案:

答案 0 :(得分:3)

不合格的previous-sibling和follow-sibling xpath表达式会在兄弟姐妹之前或之后返回 all 序列。

您需要添加一个谓词来选择上一个或下一个兄弟。

所以,举个例子:

../preceding-sibling::number[1]/two

或。更完整

../preceding-sibling::number[position()=1]/two

将返回前一个兄弟“两个”元素。

示例整数比较:

(. > xs:integer(../preceding-sibling::number[1]/two))

有关详情,请参阅http://blog.orbeon.com/2007/06/xpath-reverse-axis-evil-at-times_04.html

此致

Jez的