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() }
如何将文本值从 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() }