sql >> Base de Datos >  >> RDS >> Sqlserver

Consulta de tipos de datos XML que tienen atributos de nodo xmlns

Si su documento XML tiene espacios de nombres XML, ¡debe tenerlos en cuenta en sus consultas!

Entonces, si su XML se parece a su muestra, entonces necesita:

-- 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)

O si prefiere tener un control explícito sobre qué espacio de nombres XML usar (por ejemplo, si tiene varios), use prefijos de espacios de nombres 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)