删除父节点

时间:2013-06-17 06:48:10

标签: sql sql-server xpath xml-dml

我在SQL Server的一列中有以下xml片段

<ul>
   <li><a id="cat" href="cat.html">Cat</a></li>
   <li><a id="dog" href="dog.html">Dog</a></li>

我想删除<li>标记<a>标记id="cat"

    DECLARE @id varchar(40) =  'cat'

    UPDATE  dbo.Pref
    SET     xmlPref.modify('delete /ul/li/a[@id=sql:variable("@id")]')
    WHERE   pref    = 1

离开<li>时不能正常工作。

2 个答案:

答案 0 :(得分:2)

删除表达式路径中的“a”元素并将其添加到条件

DECLARE @id varchar(40) =  'cat'

UPDATE dbo.Pref
SET xmlPref.modify('delete //ul/li[a/@id=sql:variable("@id")]')
WHERE pref = 1

请参阅SQLFiddle

上的演示

答案 1 :(得分:-1)

如何在SQL Server中使用替换内置函数

更新dbo.Pref     SET COLUMNNAME = REPLACE('表达要搜索','要搜索的字符串','替换字符串')     在哪里.......