gpt4 book ai didi

XQuery:映射到序列数组

转载 作者:行者123 更新时间:2023-12-05 03:02:01 25 4
gpt4 key购买 nike

我有以下 map :

let $input := map { 'a-key': 'a-value', 'b-key': ['b-value-1', 'b-value-2'] }

(b-key 数组的长度可以变化,也可以不存在;a-key 可以存在或不存在)

我需要创建以下数组:

[ ('a', 'b', 'b'), 'a-value', 'b-value-1', 'b-value-2' ]

第一个序列中b的个数应该对应于b-value的个数。

我已经尝试了迭代/map:for-each 等的几乎每一种组合,数组要么以过多的嵌套结束,要么完全平坦......

(注意,数组将被传递给一个函数——不是我的!——使用fn:apply,所以需要采用这种形式)

最佳答案

构建一个包含动态构造的序列的数组似乎很难,我认为你首先需要将序列构造成一个变量,然后使用方括号数组构造函数[$seq]来以序列作为单个项目构造数组。然后你可以array:join其他值:

let $input := map { 'a-key': 'a-value', 'b-key': ['b-value-1', 'b-value-2'] }
let $seq := ($input?a-key!'a', (1 to array:size($input?b-key))!'b')
return
array:join(([$seq], array {$input?a-key, $input?b-key?* }))

https://xqueryfiddle.liberty-development.net/nbUY4ku/2

关于XQuery:映射到序列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55240976/

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