Из этого и из Возврат нескольких узлов XML и пользовательского родительского тега с использованием FLWOR XQuery , я думаю, вы немного запутались в том, как работают выражения FLWOR.
В другом вопросевам нужен был только один элемент-обертка (oldPlanes
), но вы допустили ошибку, создав элемент внутри предложения return
выражения FLWOR, которое выполняется один раз для каждого узла, выбранного предложением for
.В этом вопросе вы допустили обратную ошибку: вам нужен один элемент name
для каждого Name
на входе, поэтому вам нужно сгенерировать его в предложении return
.
Таким образом, вместо
return <name>{
for $x in $names
return ($x/First,$x/Last)}
</name>
вы хотите
return
for $x in $names
return <name>{($x/First,$x/Last)}</name>
Опять же, его можно упростить до
return $names/<name>{(First,Last)}</name>
Многие люди, приходящие в XQuery из SQL-фона, ошибаются, полагая, чтокаждый запрос должен быть выражением FLWOR.На самом деле, подавляющему большинству запросов не нужны переменные и FLWOR.