小编Pau*_*mes的帖子

使用带有名称空间的SQL Server 2008从XML中选择值

我的XML看起来像

<p:initiateTest xmlns:S52="https://collaborate.com/svn/edm/tdp/CharacteristicEnumerations" 
     xmlns:p="http://collaborate.com/svn/capabilities/tdp/ManageNetworkAndServiceDiagnosticsV4/" 
     xmlns:p1="http://wsi.nat.com/2005/06/StandardHeader/" 
     xmlns:p2="https://collaborate.com/svn/edm/tdp/Test" 
     xmlns:p3="https://collaborate.com/svn/edm/tdp/Parties" 
     xmlns:p4="https://collaborate.com/svn/edm/tdp/MORT" >
   <p1:standardHeader>
      <p1:stateCode>OK</p1:stateCode>
   </p1:standardHeader>
</p:initiateTest>
Run Code Online (Sandbox Code Playgroud)

当我在下面运行TSQL时它完成但不返回statecode值

Declare @mxml XML 

Select @mxml = xmlString
From CT_GTCS_Temp_XML
Where ID = 1

;WITH XMLNAMESPACES(  'p' AS p, 'p1' as p1, 'p2' AS p2)

select feed.xx.value('.','VARCHAR(MAX)') as statecode
from @mxml.nodes('//p:initiateTest/p1:standardHeader/p1:stateCode') feed(xx)
Run Code Online (Sandbox Code Playgroud)

xml sql xml-namespaces

3
推荐指数
1
解决办法
7072
查看次数

标签 统计

sql ×1

xml ×1

xml-namespaces ×1