如何将属性的数据复制到sql中同一列中的新属性
原始数据
<root>
<child attr='hello'></child>
</root>
结果 1
<root>
<child attr='hello' attr2='hello'></child>
</root>
结果2(有修改)
<root>
<child attr='hello' attr2='**H**ello **W**orld'></child>
</root>
我只想通过 SQL XML Xquery 执行此操作
最佳答案
我不确定我是否在第二个结果中完全遵循了您想要的内容,但我会尝试一下:下面的第一个示例将产生您的结果 #1(我已将您的原始数据放入 test.xml并假设在您的真实数据中可能会重复“child”和“attr”):
<root>{
for $child in doc('test.xml')/root/*
return
element {name($child)} {
for $attr at $index in $child/@*
return (
attribute {name($attr)} {$attr},
attribute {concat(name($attr), 2)} {$attr}
)
}
}</root>
可以对其进行修改以放入不同的值,例如结果 #2,如下所示:
<root>{
for $child in doc('test.xml')/root/*
return
element {name($child)} {
for $attr at $index in $child/@*
return (
attribute {name($attr)} {$attr},
attribute {concat(name($attr), 2)} {
'**H**ello **W**orld'
}
)
}
}</root>
希望有帮助。
关于xml - 如何在新属性中复制属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605532/