Запрос Xpath SQL Server

Я хотел бы выбрать значение типа, где xml ниже находится в столбце с типизированным xml в таблице в базе данных 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> 

Попробуйте что-то вроде этого:

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

В принципе, ваш корневой элемент <Something> не является частью какого-либо явного пространства имен XML, но любой из элементов под <Filters> – поэтому поэтому вам нужно квалифицировать тех, у кого есть подходящий префикс пространства имен XML, чтобы получить данные внутри XML-элемент.

  • Иерархический XML-запрос SQL с несколькими подэлементами
  • запрашивать XML, игнорируя пространство имен?
  • Что быстрее .exist или .value в условии where?
  • Как получить узел, содержащий дочерний узел с заданным значением атрибута в документе XML с использованием SQL-сервера?
  • как сделать xPath для значения в выражении select в SQL Server?
  • Почему CROSS APPLY необходим при использовании запросов XPath?
  • Анализ XML с использованием SQL
  • Итерация Sql по XML
  • Получить элемент без подэлементов в SQL Server
  • Запрос столбца xml SQL Server с предоставленным пользователем XPath через Entity Framework
  • Как получить имя узла и значения из переменной xml в t-sql
  • Давайте будем гением компьютера.