Сводка результата по другой переменной XQuery - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующий запрос:

for $b in //Desarrollador
let $desc := $b/Programa/Descripcion/text()
let $ver := $b/Programa/Version/text()
where $b/@CodigoDes = "D02"
return <salida>{$desc, $ver}</salida>

Результат:

Gestión Discos DurosImpresora32

Тем не менее, каким я был на самом делехочу это:

Gestión Discos 3 DurosImpresora 2

Я попытался констатировать:

for $b in //Desarrollador
let $desc := $b/Programa/Descripcion/text()
let $ver := $b/Programa/Version/text()
let $result := concat($desc, $ver)
where $b/@CodigoDes = "D02"
return <salida>{$result}</salida>

Но он показывает мне эту ошибку:

Item expected, sequence found: (text{"Gestion Discos Duros"}, ...).  

Как я мог это сделать?

1 Ответ

0 голосов
/ 16 мая 2018

Как отметил в комментариях Чарльз Даффи, кажется, что в каком-то Desarrollador узле несколько Programa детей.Это объясняет, почему concat(...) жалуется на то, что его аргументы являются последовательностями.Если это так, следующий запрос должен делать то, что вы хотите:

for $p in //Desarrollador[@CodigoDes = "D02"]/Programa
let $desc := $p/Descripcion/text()
let $ver := $p/Version/text()
return <salida>{$desc, $ver}</salida>
...