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

时间:2017-02-16 14:40:45

标签: xml xquery transformation

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

来源

 <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()

1 个答案:

答案 0 :(得分:0)

您无法更改普通XQuery中的元素(尽管存在扩展“XQuery更新”)。特别是let,因为它仅用于设置变量。

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

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