根据值删除XML属性

时间:2012-07-06 07:43:18

标签: sql sqlxml

我有一个XML变量,其中只有一个元素。我需要检查这个元素是否具有特定属性,如果有,我需要检查该属性是否具有特定值,如果有,我需要从XML元素中删除该属性。

所以我说我有

DECLARE @Xml XML
SET @XML = 
'<person
    FirstName="Harvey"
    LastName="Saayman"
    MobileNumber="Empty"
/>'

MobileNumber属性可能存在也可能不存在,如果存在,且值为“Empty”,我需要将我的XML变量更改为:

'<person
    FirstName="Harvey"
    LastName="Saayman"
/>'

我是一个完整的SQL XML菜鸟,并且不知道如何解决这个问题,任何想法?

2 个答案:

答案 0 :(得分:3)

使用modify()DML子句修改XML节点。在这种情况下,例如:

SET @XML.modify('delete (/person/@MobileNumber)[1]')

This XML workshop可以帮助您更深入地了解DML子句的删除,插入,替换等。

答案 1 :(得分:3)

SET @XML.modify('delete /person/@MobileNumber[. = "Empty"]')