在`return`之前定义一个变量并在另一个`:=`中使用它是否安全?

问题描述 投票:0回答:1
我记得在某处读过,XPath 可能会处理 //; 中表达式的组件。所以我的问题是:我可以定义一个变量并在

let

 之前的相同 
return
 表达式的其他变量定义中使用它吗?例如:

let $a := //abc, $x := $a/xyz return $x
或者为了安全起见,我必须写信吗:

let $a := //abc return let $x := $a/xyz return $x
    
xpath xquery
1个回答
0
投票
规则取决于您使用的 XPath 版本。

XPath 1.0 和 2.0 没有“let”表达式。

XPath 3.0 和 3.1 允许

let $a :=1, $b := 2 return $a+$b

 并且允许 
let $a :=1 return let $b := 2 return $a+$b
 但不允许 
let $a :=1 let $b := 2 return $a+$b
。 XPath 4.0 提案草案允许所有这些形式(所有版本的 XQuery 也是如此)。

© www.soinside.com 2019 - 2024. All rights reserved.