Requête Xpath SQL Server

Je voudrais sélectionner la valeur de Type où le xml ci-dessous est dans une colonne typée xml dans une table dans une database SQL Server 2005.

<Something xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Id xmlns="http://something.com/">1921</Id> <Date xmlns="http://something.com/">1901-01-01T00:00:00Z</Date> <Schedule xmlns="http://something.com/">Region</Schedule> <Filters xmlns="http://something.com/"> <Data> <Id>99999</Id> <Name>CS</Name> <Type>SomeType</Type> </Data> </Filters> </Something> 

Essayez quelque chose comme ceci:

 ;WITH XMLNAMESPACES ('http://something.com/' AS xn) SELECT XmlType = XmlColumn.value('(Something/xn:Filters/xn:Data/xn:Type)[1]', 'varchar(50)') FROM dbo.YourTable 

Fondamentalement, votre élément racine <Something> ne fait partie d'aucun espace de noms XML explicite – mais tous les éléments sous <Filters> sont – donc, vous devez qualifier ceux avec un préfixe d'espace de nom XML approprié pour get datatables à l'intérieur du Élément XML.