2017-02-16 1 views
0

Comment puis-je copier des valeurs de texte d'un élément dans un document XML à un autre.xquery copie des valeurs de texte d'un élément à un autre

la source

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

cible

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

résultat souhaité

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

essayé de le faire, il wit h ci-dessous

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

Répondre

0

Vous ne pouvez pas modifier un élément dans XQuery normal (bien qu'il existe une extension "XQuery mise à jour"). Surtout pas avec let car il est seulement utilisé pour définir des variables.

Mais vous pouvez créer un nouvel élément avec le même nom et le contenu:

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

thks beaucoup, apprécier. Je ne sais pas pour peut prendre à l'opérateur aussi bien. – bajju