加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何从sql server 2008中的XML变量中删除属性?

发布时间:2020-12-12 16:24:12 所属栏目:MsSql教程 来源:网络整理
导读:我有一个名为XML的表(在SQL Server 2008中),它有一个名为XML的XmlDocument字段.我试图从XML变量中删除属性. 这是我的xml的样子 clue_personal_auto xmlns="http://cp.com/rules/client" admin receipt_date03/16/2011/receipt_date date_request_ordered03/16
我有一个名为XML的表(在SQL Server 2008中),它有一个名为XML的XmlDocument字段.我试图从XML变量中删除属性.

这是我的xml的样子

<clue_personal_auto xmlns="http://cp.com/rules/client">
  <admin>
     <receipt_date>03/16/2011</receipt_date>
     <date_request_ordered>03/16/2011</date_request_ordered>
     <report_usage>Personal</report_usage>
  </admin>
</clue_personal_auto>

我的查询

UPDATE XML
SET XmlDocument.modify('delete  (/clue_personal_auto/@xmlns)[1]')
 WHERE xmlid = 357

当我在查询分析器中运行此查询时,我看到消息“1行受影响”,但实际上clue_personal_auto元素的xmlns属性未被删除.知道我做错了什么.

谢谢
BB

解决方法

我似乎无法找到一个简单的方法来做到这一点 – 但真正的问题仍然是:你为什么要删除命名空间?使用WITH XMLNAMESPACES …构造,您可以轻松地使用命名空间.

而不是花费大量精力去摆脱它 – 了解XML命名空间并开始使用它们!

您可以在查询中轻松使用该XML命名空间:

;WITH XMLNAMESPACES (DEFAULT 'http://cp.com/rules/client' )
SELECT
    XmlDocument.value('(/clue_personal_auto/admin/report_usage)[1]','varchar(25)')
FROM XML
WHERE ID = 357

并对它感到高兴 – 不再需要人工删除xmlns =声明!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读