Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Работа с XML-данными

$
0
0
Друзья, требуется помощь!
Пытаюсь написать хранимую процедуру, которая получает XML-данные и записывает объекты и связи между ними в таблицы.
Как распарсить XML-данные, имеющие чётко определённую структуру, я немного разобрался.
declare @xmldata xml = 
'<response list="true">
 <user>
  <first_name>Василий</first_name>
  <last_name>Иванов</last_name>
  <city>Москва</city>
  <country>Россия</country>
  <schools list="true">
       <school>
        <country>Россия</country>
        <city>Иваново</city>
        <name>Средняя школа №27</name>
        <year_from>1990</year_from>
        <year_to>1992</year_to>
       </school>
       <school>
        <country>Россия</country>
        <city>Москва</city>
        <name>Средняя школа 2271</name>
        <year_from>1996</year_from>
        <year_to>2001</year_to>
        <year_graduated>2001</year_graduated>
       </school>
  </schools>
 </user>
 <user>
  <first_name>Анна</first_name>
  <last_name>Полещук</last_name>
  <city>Самара</city>
  <country>Россия</country>
 </user>
 </response>'
 
 select
	 [first_name] = tab.col.value('first_name[1]', 'nvarchar(500)')
	,[last_name] = tab.col.value('last_name[1]', 'nvarchar(500)')
	,[city] = tab.col.value('city[1]', 'nvarchar(500)')
	,[country] = tab.col.value('country[1]', 'nvarchar(500)')
from @XMLdata.nodes('response/user') tab(col)

А вот как обрабатывать вложенные объекты (schools), когда заранее неизвестно, сколько их будет?

Viewing all articles
Browse latest Browse all 7251