Получение имени элемента XML с помощью T-SQL

Если я имею:

<quotes>
  <quote>
    <name>john</name>
    <content>something or other</content>
  </quote>
  <quote>
    <name>mary</name>
    <content>random stuff</content>
  </quote>
</quotes>

Как я получаю список имен элементов 'имя' и 'содержание' с помощью T-SQL?

Лучшее, которое я имею до сих пор:

declare @xml xml
set @xml = ...
select r.value('quotes/name()[1]', 'nvarchar(20)' as ElementName
from @xml.nodes('/quotes') as records(r)

Но, конечно, я не могу заставить это работать.

18
задан OMG Ponies 5 July 2010 в 16:25
поделиться

1 ответ

На самом деле, извините, лучшее, что у меня есть, это:

select distinct r.value('fn:local-name(.)', 'nvarchar(50)') as t
FROM
    @xml.nodes('//quotes/*/*') AS records(r)

Думаю, я ответил на свой вопрос ...

32
ответ дан 30 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: