xquery 将文本值从一个元素复制到另一个元素

xquery copy text values from one element to another

如何将文本值从 xml 文档中的一个元素复制到另一个元素。

来源

 <f> <a> val1 </a> <b> val2 </B> </f>

目标

 <G> <alpha/> <beta/> </G>

想要的结果

 <G> <alpha>val1</alpha> <beta>val2</beta> </G>

尝试用下面的

let $src:= f/*
let $tgt:= G/*

**Option1 :** Let src/text():= tgt/text() // does not work 
**Option2:** 
 for $i in $src let $tgt[$i/position()]/text() := $i/text()

您不能在普通 XQuery 中更改元素(尽管存在扩展 "XQuery update")。尤其是 let,因为它仅用于设置变量。

但您可以创建一个具有相同名称和内容的新元素:

let $src:= f/*
let $tgt:= G/*
for $s at $i in $src 
return element { name($tgt[$i]) } { $s/node() }