Есть ли способ сгруппировать ввод по диапазону позиции?В моем случае у меня есть функция, которая потребляет несколько строк.Мне нужно сгруппировать их по диапазону статических позиций (1-3, 4-6, 7-9 и т. Д.), А затем выполнить некоторый код для каждой из этой группы в цикле for.Я не знаю, сколько строк передается.Оно может меняться в зависимости от ввода.
Я пытался выполнить итерацию для $ x при $ i in ..., но не смог сделать это правильно
declare function bs:concat-strings
( $multipleStringInput as item()+ ) {
let $firstString := $multipleStringInput[position() = 1]
let $secondString := $multipleStringInput[position() = 2]
let $thirdString := $multipleStringInput[position() = 3]
let $concat :=
concat(
$firstString,
$secondString,
$thirdString)
return bs:next-function($concat)
} ;
Так что моя цель - сгруппировать это множествоСтроки в переменные меньшего размера на 3, чтобы иметь возможность работать с ними отдельно и получить к ним, как указано выше, с константами [position () = 1], [position () = 2], [positon () = 3], затем объединить их и передатькаждая следующая функция ИЛИ как-то менять положение [1,2,3] -> [4,5,6] в каждой итерации.
например:
INPUT: 'Cat', 'лайки »,« рыба »,« собака »,« лайки »,« кости »
ВЫХОД: bs: next-function ('Catlikesfish') bs: next-function ('Doglikesbones')