Sql server 使用T-SQL解析xml。。。。我做错了什么

Sql server 使用T-SQL解析xml。。。。我做错了什么,sql-server,xml,tsql,Sql Server,Xml,Tsql,我正试图解析从Web服务获得的xml信息,以便稍后放入表中。 我没有错误,只有一个空字段,所以我可能忽略了一些小问题,有人能把我推向正确的方向吗 Declare @myXml as xml; set @myXml = '<?xml version="1.0" encoding="UTF-8"?> <string xmlns="http://www.webserviceX.NET"> <CurrentWeather> <Location

我正试图解析从Web服务获得的xml信息,以便稍后放入表中。 我没有错误,只有一个空字段,所以我可能忽略了一些小问题,有人能把我推向正确的方向吗

Declare @myXml as xml;

set @myXml = '<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://www.webserviceX.NET">
   <CurrentWeather>
      <Location>Eindhoven, Netherlands (EHEH) 51-27N 005-25E 28M</Location>
      <Time>Jun 15, 2016 - 06:55 AM EDT / 2016.06.15 1055 UTC</Time>
      <Wind>from the WSW (240 degrees) at 2 MPH (2 KT):0</Wind>
      <Visibility>greater than 7 mile(s):0</Visibility>
      <SkyConditions>mostly cloudy</SkyConditions>
      <Temperature>62 F (17 C)</Temperature>
      <DewPoint>57 F (14 C)</DewPoint>
      <RelativeHumidity>82%</RelativeHumidity>
      <Pressure>29.50 in. Hg (0999 hPa)</Pressure>
      <Status>Success</Status>
   </CurrentWeather>
</string>';

 SELECT 
   b.value('(./CurrentWeather/Location/text())[1]','Varchar(250)') as [Location] 
FROM @myXml.nodes('/string') as a(b);
将@myXml声明为xml;
set@myXml=
荷兰埃因霍温(EHEH)51-27N 005-25E 28M
2016年6月15日-2016年6月15日美国东部时间上午6:55 UTC 1055
以2英里/小时(2公里/小时)的速度从WSW(240度):0
大于7英里:0
多雲
62 F(17 C)
57 F(14 C)
82%
29.50英寸。汞柱(0999百帕)
成功
';
挑选
b、 值(“(./CurrentWeather/Location/text())[1]”,“Varchar(250)”作为[Location]
将@myXml.nodes('/string')作为a(b)从中删除;

T-SQL要求您在出现任何名称空间时指定名称空间:

with xmlnamespaces(default 'http://www.webserviceX.NET')
select b.value('(./CurrentWeather/Location/text())[1]','Varchar(250)') as [Location]
FROM @myXml.nodes('/string') as a(b);
可能重复的