Друзья, требуется помощь!
Пытаюсь написать хранимую процедуру, которая получает XML-данные и записывает объекты и связи между ними в таблицы.
Как распарсить XML-данные, имеющие чётко определённую структуру, я немного разобрался.
А вот как обрабатывать вложенные объекты (schools), когда заранее неизвестно, сколько их будет?
Пытаюсь написать хранимую процедуру, которая получает 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), когда заранее неизвестно, сколько их будет?