首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server xml.modify delete方法

SQL Server xml.modify delete方法
EN

Stack Overflow用户
提问于 2008-12-18 16:38:29
回答 1查看 5.4K关注 0票数 5

我在从节点中删除属性时遇到了问题。

示例:

代码语言:javascript
复制
DECLARE @processID int
SET @processID = 8

DECLARE @xml XML
SET @xml = 
'<Process id="10" name="Test 1">
  <Shapes>
    <Shape id="1" name="Shape 1" subProcessID="8">
    </Shape>
    <Shape id="2" name="Shape 2" subProcessID="9">
    </Shape>
  </Shapes>
  <Lines />
</Process>'

SET @xml.modify('delete (/Process/Shapes/Shape/@subProcessID[/Process/Shapes/Shape/@subProcessID = sql:variable("@processID")])')
SELECT @xml

给出结果:

代码语言:javascript
复制
<Process id="10" name="Test 1">
  <Shapes>
    <Shape id="1" name="Shape 1" />
    <Shape id="2" name="Shape 2" />
  </Shapes>
  <Lines />
</Process>

我想要的是:

代码语言:javascript
复制
<Process id="10" name="Test 1">
  <Shapes>
    <Shape id="1" name="Shape 1" />
    <Shape id="2" name="Shape 2" subProcessID="9" />
  </Shapes>
  <Lines />
</Process>

实现这一目标的语法是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-12-16 21:33:57

当操作员走了,但他在评论中留下了解决方案,让我添加这一点作为答案:

代码语言:javascript
复制
DECLARE @processID int
SET @processID = 8

DECLARE @xml XML
SET @xml = 
'<Process id="10" name="Test 1">
  <Shapes>
    <Shape id="1" name="Shape 1" subProcessID="8">
    </Shape>
    <Shape id="2" name="Shape 2" subProcessID="9">
    </Shape>
  </Shapes>
  <Lines />
</Process>'

SET @xml.modify('delete (/Process/Shapes/Shape[@subProcessID = sql:variable("@processID")]/@subProcessID)')
SELECT @xml

这就是a working sqlfiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/378431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档