XML ドキュメントに XML 名前空間がある場合は、クエリでそれらを考慮する必要があります!
したがって、XML がサンプルのように見える場合は、以下が必要です。
-- define the default XML namespace to use ;WITH XMLNAMESPACES(DEFAULT 'bar') SELECT x.u.value('Name[1]', 'varchar(100)') as Name from @XMLDOC.nodes('/Feed/Product') x(u)
プレ>または、使用する XML 名前空間を明示的に制御したい場合 (複数ある場合など) は、XML 名前空間プレフィックスを使用します:
-- define the XML namespace ;WITH XMLNAMESPACES('bar' as b) SELECT x.u.value('b:Name[1]', 'varchar(100)') as Name from @XMLDOC.nodes('/b:Feed/b:Product') x(u)
プレ>