我对 XQuery 完全陌生。我的代码直接来自这篇文章:SQL server xquery
但是,我的 XML 数据包含一些命名空间信息(我认为这很常见),并且只有在删除这些信息时查询才有效。例子:
declare @x xml=
'<WeatherReturn
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://ws.cdyne.com/WeatherWS/">
<City>Dallas</City>
<State>TX</State>
<Temperature>55</Temperature>
</WeatherReturn>'
select t.s.value('City[1]','nvarchar(20)') [City],
t.s.value('State[1]','nvarchar(20)') [State],
t.s.value('Temperature[1]','nvarchar(20)') [Temperature]
from @x.nodes('WeatherReturn') t(s)
照原样,查询返回三个空白列。但是删除 3 "xmlns:" 行,我得到了正确的结果。
有人可以解释这种行为以及我需要做些什么来克服它吗?谢谢