gpt4 book ai didi

xpath - 如何在 XQuery 中创建没有 else 的 if 语句?

转载 作者:行者123 更新时间:2023-12-03 15:33:43 25 4
gpt4 key购买 nike

我想创建一个 if没有 else 的声明XQuery 中的一部分。

例如:

<results>
{
if (5 = 5) then
<foo/>
}
<results>

我该怎么做呢?

我也试过这个:
<results>
{
if (5 = 5) then
<foo/>
else
return
}
<results>

虽然可以编译,但在运行时不起作用!

最佳答案

没有if XQuery 中没有 else 的语句.而是返回空序列 () ,或任何合理的identity element (如果没有具体定义,这通常是您需要的)。

if ($foo eq "bar")
then
42
else
()

与过程语言相比,“no else statement”仅仅意味着“什么都不做” XQuery 是一种函数式语言,这也意味着每个操作都必须返回“某物”。如何进行“无”?可以声明“没有 else 语句意味着返回空序列”,但 W3C XML 查询工作组似乎已经决定要求明确定义不返回任何内容。总而言之,这会导致更容易理解并且可能更好的代码,因为您必须考虑要返回的“else”值是什么;因为可能有很多合理的值: 0如果你要添加一些东西, 1如果相乘,则为空字符串 ""用于连接不带分隔符的字符串,如果连接带分隔符的字符串,则为空序列,...

不要使用“空 return 语句”

无法使用“空”返回,但返回 <return/>而是当前上下文中的子元素,所以 else return只是一个 else ./return .如果当前上下文确实有 <return/>,这不仅会失败(并返回一些东西) child ,但如果没有任何上下文是绑定(bind)的。

不要返回空字符串

返回一个空字符串不会返回任何内容,而是返回空字符串,它是一个值,甚至可能会在另一个地方打断打字。返回空字符串不是一般的解决方案,但可能在某些特定情况下。

关于xpath - 如何在 XQuery 中创建没有 else 的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com