Nếu tài liệu XML của bạn có không gian tên XML, thì bạn cần phải xem xét các không gian tên đó trong truy vấn của mình!
Vì vậy, nếu XML của bạn trông giống như mẫu của bạn, thì bạn cần:
-- 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)
Hoặc nếu bạn muốn có quyền kiểm soát rõ ràng đối với không gian tên XML nào sẽ sử dụng (ví dụ:nếu bạn có nhiều), hãy sử dụng tiền tố không gian tên 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)