Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 OPENXML. Подскажите как не указывать явно родительскую ноду  [new]
RedVlad
Member

Откуда:
Сообщений: 6
Поискал бегло, но первые же 3 результата удручили - уровень явно выше моего
А мне возможно совсем простое требуется

Так я могу получить требуемое

DECLARE @XML XML
SET @XML = '<R><Q>Пушкин</Q><MM><M1><W>Вечор ты помнишь</W></M1><M2><W>Вьюга злилась</W></M2></MM></R>'
DECLARE @handle INT
DECLARE @PrepareXmlStatus INT
EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML

SELECT Q -- Пушкин
FROM OPENXML(@handle, 'R', 2) WITH ( Q varchar(999) './Q' )
union all

SELECT W --Вечор ты помнишь
FROM OPENXML(@handle, 'R/MM/M1', 2) WITH (W varchar(999) './W')
union all
SELECT W --Вьюга злилась
FROM OPENXML(@handle, 'R/MM/M2', 2) WITH (W varchar(999) './W')


EXEC sp_xml_removedocument @handle

А как мне не указывать ноду M1 (M2) ?
т.е. взять все ноды W из дедушки MM
29 дек 18, 13:59    [21776406]     Ответить | Цитировать Сообщить модератору
 Re: OPENXML. Подскажите как не указывать явно родительскую ноду  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5958
DECLARE @XML XML
SET @XML = '<R><Q>Пушкин</Q><MM><M1><W>Вечор ты помнишь</W></M1><M2><W>Вьюга злилась</W></M2></MM></R>'
DECLARE @handle INT
DECLARE @PrepareXmlStatus INT
EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML

SELECT Q -- Пушкин
FROM OPENXML(@handle, 'R', 2) WITH ( Q varchar(999) './Q' )
union all

SELECT W --Вечор ты помнишь+Вьюга злилась
FROM OPENXML(@handle, '/R/MM//W', 2) WITH (W varchar(999) 'text()')


EXEC sp_xml_removedocument @handle
29 дек 18, 14:17    [21776421]     Ответить | Цитировать Сообщить модератору
 Re: OPENXML. Подскажите как не указывать явно родительскую ноду  [new]
RedVlad
Member

Откуда:
Сообщений: 6
Сон Веры Павловны,

Спасибо!

зы
С первого сна повесть и закончилась )
29 дек 18, 14:21    [21776427]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить