update tbl_xml set mov_vcds.modify('replace value of(/videos/video/title/text())[1] with "Anbu"')
没有text()我们可以使用此查询..
答案 0 :(得分:4)
text()
指定title
节点的内容。没有它你就得到了
Msg 2356, Level 16, State 1, Line 9
XQuery [tbl_xml.mov_vcds.modify()]: The target of 'replace value of' must be a non-metadata attribute or an element with simple typed content, found 'element(title,xdt:untyped) ?'
所以你需要它。
答案 1 :(得分:2)
很遗憾看到" text()"以这种方式使用在路径表达式的末尾,在那里它是不必要的,偶尔也是有害的。通常,您可以在要引用元素内容的上下文中使用元素节点本身。有一些例外,例如在元素构造函数
中<title>{title}</title>
和
<title>{title/text()}</title>
做不同的事情(第一个给你<title><title>original title</title></title>
)。但在这种情况下,使用title/string()
通常会更好,因为它可以更好地处理嵌套注释,混合内容等。