xdmp:eval()
有人可以对和xdmp:value()
功能提供更好的解释吗?
我曾尝试遵循 Developer API。但是,我对这些实例并不十分满意,而且对我来说有点模糊。如果有人可以帮助我理解这些功能及其与示例的区别,我将不胜感激。
xdmp:eval()
有人可以对和xdmp:value()
功能提供更好的解释吗?
我曾尝试遵循 Developer API。但是,我对这些实例并不十分满意,而且对我来说有点模糊。如果有人可以帮助我理解这些功能及其与示例的区别,我将不胜感激。
这两个函数都用于动态执行代码字符串,但xdmp:value
会根据当前上下文进行评估,因此如果您在当前范围内定义了变量或声明了模块,则可以引用它们而无需重新声明它们。
xdmp:eval
需要创建一个不知道上下文调用的全新上下文xdmp:eval
。必须定义一个新的 XQuery 序言,来自主上下文的变量xdmp:eval
作为参数传递给调用,并在 eval 脚本中声明为外部变量。
一般来说,如果你可以使用xdmp:value
,它可能是最好的选择;但是,xdmp:eval
有一些xdmp:value
没有的功能,即<options>
参数中定义的所有内容。通过这些选项,可以控制执行查询的用户、执行查询的数据库、事务模式等。
还有一个执行动态字符串的函数:xdmp:unpath
,它与 类似xdmp:value
,但更有限,它只能执行 XPath。