XML DML 数据修改语言小节 (二)

/***************************************************

          作者:herowang(让你望见影子的墙)

          日期:2009.10.18

          注:    转载请保留此信息

****************************************************/


二、删除操作

view plaincopy to clipboardprint?
declare @myxml xml  
set @myxml='<?Program ="Instructions.exe" ?>  
          <root>成绩表--这是个文本节点  
             <item id="1" year="2009" depart="计算机" class="1班">  
               <sname> 王一诺</sname>  
               <course1>sql server2005</course1>  
               <grade>82</grade>  
             </item>  
             <item id="2" year="2009" class="1班">  
               <sname>王海</sname>  
               <course1>sql server2005</course1>  
               <grade>75</grade></item>  
             <item id="3" year="2009" class="1班">  
               <sname>王若天</sname>  
               <course1>oracle</course1>  
               <grade>59</grade>  
             </item>  
           </root>'  
 
--1、删除所有指令  
set @myxml.modify('delete //processing-instruction()')  
select '删除所有指令'=@myxml  
--2、删除文本节点  
set @myxml.modify('delete /root/text()')  
select '删除文本节点'=@myxml  
--3、删除节点id为的属性  
set @myxml.modify('delete /root/item[@id=1]/@class')  
select '删除节点id为的属性'=@myxml  
--4、删除第二个节点属性  
set @myxml.modify('delete /root/item[2]/@class')  
select '删除第二个节点属性'=@myxml  
--5、删除节点属性  
set @myxml.modify('delete /root/item/@class')  
select '删除节点属性'=@myxml  
--6、删除节点id为的元素  
set @myxml.modify('delete /root/item[@id=1]/grade')  
select '删除节点id为的元素'=@myxml  
--7、删除第二个节点元素  
set @myxml.modify('delete /root/item[2]/grade')  
select '删除第二个节点元素'=@myxml  
--8、删除元素  
set @myxml.modify('delete /root/item/grade')  
select '删除元素'=@myxml  
--9、删除id为的节点  
set @myxml.modify('delete /root/item[@id=2]')  
select '删除id为的节点'=@myxml  
--10、删除第二个的节点  
set @myxml.modify('delete /root/item[2]')  
select '删除id为的节点'=@myxml  
--11、删除第二个节点  
set @myxml.modify('delete /root/item')  
select '删除节点'=@myxml 
declare @myxml xml
set @myxml='<?Program ="Instructions.exe" ?>
          <root>成绩表--这是个文本节点
             <item id="1" year="2009" depart="计算机" class="1班">
               <sname> 王一诺</sname>
               <course1>sql server2005</course1>
               <grade>82</grade>
             </item>
             <item id="2" year="2009" class="1班">
               <sname>王海</sname>
               <course1>sql server2005</course1>
               <grade>75</grade></item>
             <item id="3" year="2009" class="1班">
               <sname>王若天</sname>
               <course1>oracle</course1>
               <grade>59</grade>
             </item>
           </root>'

--1、删除所有指令
set @myxml.modify('delete //processing-instruction()')
select '删除所有指令'=@myxml
--2、删除文本节点
set @myxml.modify('delete /root/text()')
select '删除文本节点'=@myxml
--3、删除节点id为的属性
set @myxml.modify('delete /root/item[@id=1]/@class')
select '删除节点id为的属性'=@myxml
--4、删除第二个节点属性
set @myxml.modify('delete /root/item[2]/@class')
select '删除第二个节点属性'=@myxml
--5、删除节点属性
set @myxml.modify('delete /root/item/@class')
select '删除节点属性'=@myxml
--6、删除节点id为的元素
set @myxml.modify('delete /root/item[@id=1]/grade')
select '删除节点id为的元素'=@myxml
--7、删除第二个节点元素
set @myxml.modify('delete /root/item[2]/grade')
select '删除第二个节点元素'=@myxml
--8、删除元素
set @myxml.modify('delete /root/item/grade')
select '删除元素'=@myxml
--9、删除id为的节点
set @myxml.modify('delete /root/item[@id=2]')
select '删除id为的节点'=@myxml
--10、删除第二个的节点
set @myxml.modify('delete /root/item[2]')
select '删除id为的节点'=@myxml
--11、删除第二个节点
set @myxml.modify('delete /root/item')
select '删除节点'=@myxml
 

三、修改操作

view plaincopy to clipboardprint?
--1、修改文本的值  
set @myxml.modify('replace value of(/root/text())[1] with "1班成绩表"')  
select @myxml  
--2、修改元素的值  
set @myxml.modify('replace value of(/root/item[@id=3]/grade/text())[1] with "60"')  
select @myxml  
--3、修改属性的值  
set @myxml.modify('replace value of(/root/item[@id=1]/@class)[1] with "2班"')  
select @myxml 

 

原文地址:https://www.cnblogs.com/trieagle/p/1630502.html