2017-02-16 4 views
0

Как достичь копирования значений текста из одного элемента в XML-документе в другой.xquery копировать текстовые значения из одного элемента в другой

источник

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

ответ

0

Вы не можете изменить элемент в нормальном XQuery (хотя существует расширение «XQuery обновление»). Особенно не для let, так как он используется только для установки переменных.

Но вы можете создать новый элемент с тем же именем и содержанием:

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

Thks много, оценить его. Не знал, что может взять у оператора. – bajju

Смежные вопросы