我正在使用xQuery,如果test
元素下不存在元素标记Active
,我正在尝试替换User
元素的值。
(我添加了引号以便能够在此正确显示...)
declare @testXML xml = '
<USER>
<ID>10</ID>
<TEST>1</TEST>
</USER>'
set @testXML.modify('if (exists(/USER/Active)=false)
then replace value of /USER/TEST with "2"
else ()')
select @testXML
为此,我收到此错误:
XQuery [modify()]:'value'附近的语法错误,期望'else'。
我出错了什么?
答案 0 :(得分:2)
不允许在表达式中嵌入replace value of ... with ..
。
replace value of
Expression1
with
Expression2
你可以改用这样的东西:
set @testXML.modify('replace value of (/USER[not(Active)]/TEST/text())[1]
with "2"')