如何删除特定的XML属性?

时间:2013-08-26 16:21:54

标签: sql-server xml sql-server-2008

我有一个存储在SQL中的XML字符串。插入XML的程序不会标记内部的所有对象。

字符串示例:

<XMLInfo Sample1="1234" Sample2="1234" Sample3="1234" Sample4="1234" />

我需要完全删除sample2项。其他一些因素导致Sample2每次sample3后面都不会跟sample2,{{1}}没有固定的长度。

1 个答案:

答案 0 :(得分:2)

SQL Server

update test set data.modify('delete XMLInfo/@Sample2');

sql fiddle demo

PostgreSQL (我认为没有xml解析/修改功能,但有扩展名):

create or replace function remove_attrib(data xml, attr text)
returns xml
as
$$
import xml.etree.ElementTree as ET
r = ET.fromstring(data)
del r.attrib[attr]
return ET.tostring(r)
$$ language plpython3u;

update test set data = remove_attrib(data, 'Sample2');