用query方法获得xml节点的值

2015-07-21 16:26:52 · 作者: · 浏览: 1
DECLARE @result xml
SET @result='
   
    
     
      
       
        17953736-852b-e511-80cc-0050568e38e0
       
       
        
         contact
        
        
         true
        
       
      
     
    
   
' SELECT @result.query('declare namespace s="http://schemas.xmlsoap.org/soap/envelope/"; declare namespace a="http://schemas.datacontract.org/2004/07/Cenvation.ServiceWebsite.Datamodel"; declare namespace i="http://www.w3.org/2001/XMLSchema-instance"; declare default element namespace "http://tempuri.org/"; data(/s:Envelope/s:Body/ReceiveDataResponse/ReceiveDataResult/a:ID)')

这是一个读取xml 中指定节点数据的一段脚本,这个示例数据中包含命名空间,所以在query 方法中需要声明这些命名空间,否则无法正确解析这段xml, 如果xml 数据中包含命名空间,就可以不用在query 方法中声明这些命名空间。