XQuery是否具有FLWOR表达式的退出语句

时间:2010-06-26 15:19:52

标签: xml xquery

我想知道xquery FLWOR表达式是否有一个退出语句,如continue和break?

例如,我想在达到特定条件时退出for循环。

3 个答案:

答案 0 :(得分:7)

  

我想知道xquery是否FLWOR   表达式有一个退出语句   继续休息?

     

例如我想退出for   当特定条件时循环   达到。

XQuery是一种功能性语言,在许多其他事物中,这意味着没有严格的执行顺序概念。因此,任何尝试在事件发生时执行特定的尝试都没有意义。

正确的方法是在满足特定条件时执行

除了使用 error() 功能外,无法退出FLWOR表达式,但这会终止处理。

人们不应该过于担心优化 - 许多处理器都有很好的优化器。

因此,许多处理器将懒惰地进行评估并将停止评估下面的FLOWR表达式,这是第一次产生满足specific-condition()的结果:

  (someFlowerExpression )[specific-condition(.)][1]

答案 1 :(得分:1)

XQuery Scripting有退出声明:

variable $i := 0;
while(true())
{
  $i := $i + 1;
  if($i = 3) then
      exit returning $i 
  else();
} 

或者

for $i in (1 to 1000)
return
  if($i = 3) then
    exit returning $i;
  else();

您可以在http://www.zorba-xquery.com/html/demo#JvSLsVh3ZjhvTHecVd9jyE1vEBc=

上试用此示例

答案 2 :(得分:0)

虽然问题已经很久了,但我正在回答这个问题,因为一些新人可能会遇到这样的情况,并会得到更好的解决方案。

此解决方案可在BaseX 7.6上轻松运行

for $i in (1 to 10)
return
   if ($i = 3) then
       $i
   else 
       exit

输出将为 - 3

或者这将生成输出-3,

for $i in (1 to 10)
return
   if ($i = 3) then
       $i
   else 
       ()