我正在开发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.
答案 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的