SQL 2005的数据修改语言(XML DML)(四)

日期: 2008-09-09 作者:张洪举 来源:TechTarget中国 英文

 




SET @myDoc.modify(’ 
  delete /root/item[@ID=1]/text() 
  ’) 
  select @myDoc 

  – 删除一个属性


     





 SET @myDoc.modify(’ 
  delete /root/item[@ID=1]/@ShipTo 
  ’) 
  select @myDoc 

  – 删除一个元素


     







SET @myDoc.modify(’ 
  delete /root/item[@ID=2]/author 
  ’) 
  select @myDoc 
  – 删除ID为2的item节点 
  SET @myDoc.modify(’ 
  delete /root/item[@ID=2] 
  ’) 
  select @myDoc 
  GO 



  从非类型化xml变量中删除注释、指令、属性、元素和节点


  图3从非类型化xml变量中删除注释、指令、属性、元素和节点


  下面的语句演示从类型化XML中删除节点的方法,其中的MyCustomer是前面在“将节点插入类型化的xml列中”部分中创建的。






   update MyCustomer 
  SET CustomerItem.modify(’ 
  declare namespace CS=”http://schemas.mybook.com/customerschemas”; 
  delete /CS:customer/item[@ID=2] 
  ’); 
  select CustomerItem FROM MyCustomer; 
  GO 


  3.replace


  replace用于更新文档中的值。其语法格式如下:







  replace value of 
  Expression1 
  with 
  Expression2 
  Expression1 


  标识其值要更新的节点。它必须仅标识一个单个节点。如果XML已类型化,则节点的类型必须是具有简单类型内容(列表或原子类型)的单个元素、文本节点或属性节点,不能是联合类型、复杂类型、处理指令、文档节点或注释节点。否则,将返回错误。







   Expression2 

  标识节点的新值。在修改类型化的XML实例中,Expression2与Expression1必须是相同类型。


  下面的示例演示了更新XML中元素的文本和属性值的方法。每次更改时,都会显示XML,如图4所示。  







 DECLARE @myDoc xml 
  SET @myDoc = ’ 
  张洪举 
  卢桂章 
  ’ 
  select @myDoc 

  – 更新ID为1的item中的title元素的文本







 SET @myDoc.modify(’ 
  replace value of (/root/item[@ID=1]/title/text())[1] 
  with “Ajax实战攻略” 
  ’) 
  select @myDoc 

  – 更新属性值






   SET @myDoc.modify(’ 
  replace value of (/root/item[@ID=2]/@ID)[1] 
  with “3” 
  ’) 
  select @myDoc  


  更改XML中元素的文本和属性值
  


  图4 更改XML中元素的文本和属性值

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐