gpt4 book ai didi

xpath - fn :sum error "cannot cast to xs:double"

转载 作者:行者123 更新时间:2023-12-03 16:10:30 27 4
gpt4 key购买 nike

我正在尝试添加多个节点(名称和节点数量不确定)。

执行查询

for $x in //onboard/*
return $x

返回这个(以及更多)
<total>
<one/>
</total>
<total>
<one>124</one>
<two>1</two>
<three>0</three>
</total>
<total>
<one>46</one>
</total>
<total>
<one>129</one>
<two>1</two>
<three>0</three>
</total>
<seafarers>
<one>149</one>
<two>3</two>
<three>3</three>
<six>155</six>
</seafarers>
<soldiers>
<one>135</one>
<six>118</six>
</soldiers>

每个 child 的名字是“total”或“seafarers”或类似但不固定的东西我想返回从节点“一”到节点“六”的所有节点的值的总和
同样,不确定有多少节点以及是否存在任何节点(对于每个节点,至少存在 1 个数字节点,但这不必是“一个”)。

到目前为止,我尝试过的一切都会导致类型转换错误或不正确的答案。

对于提供的示例代码,所需的答案是:
125
46
130
310
253

最佳答案

您可以尝试这种方式:

for $x in //onboard/*[*]
return sum($x/*)

内容为:对于 $x作为 <onboard> 的每个 child 具有至少一个子元素,返回 $x 的所有子元素的总和.

更新:

原来问题是由于传递给 sum() 的空元素造成的。功能。这是避免错误的另一种可能方法:
for $x in //onboard/*[normalize-space()]
return sum($x/*[normalize-space()])

以上 xquery 只考虑 <onboard> 的 child 那是非空元素。然后在 sum()操作,同样只有 $x 的非空子节点经过考虑的。

关于xpath - fn :sum error "cannot cast to xs:double",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563687/

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