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

Откуда: Msk
Сообщений: 581
как можно вытащить текст blablabla и blablabla22222 у элементов MetricsSuper
declare @xml xml = '<Content>
	<MetricsSuper>blablabla
    
		<Metric id="Shift">73701</Metric>
		<Metric id="RefundOldTrans">632704</Metric>
		<Metric id="Database">12967</Metric>
		<Metric id="Global">2299194</Metric>
		<Metric id="Global">13752614</Metric>
	</MetricsSuper>
	<MetricsSuper>blablabla22222
    
		<Metric id="Shift" type="timer">73701</Metric>
		<Metric id="RefundOldTrans">632704</Metric>
		<Metric id="Database">12967</Metric>
		<Metric id="Global.CurrentUser">2299194</Metric>
		<Metric id="Global.CurrentUser_FetchIdentityFromDatabase">13752614</Metric>
	</MetricsSuper>
</Content>'

select @xml.query('Content/MetricsSuper')
22 июл 19, 19:10    [21932050]     Ответить | Цитировать Сообщить модератору
 Re: xml, текст у элементов найти  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
SELECT @xml.query('Content/Metrics/text()')
22 июл 19, 19:13    [21932052]     Ответить | Цитировать Сообщить модератору
 Re: xml, текст у элементов найти  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
NewIvanovec,

должно быть так:

declare @xml xml = '<Content>
	<MetricsSuper aaa="blablabla">
    
		<Metric id="Shift">73701</Metric>
		<Metric id="RefundOldTrans">632704</Metric>
		<Metric id="Database">12967</Metric>
		<Metric id="Global">2299194</Metric>
		<Metric id="Global">13752614</Metric>
	</MetricsSuper>
	<MetricsSuper aaa="blablabla22222">
    
		<Metric id="Shift" type="timer">73701</Metric>
		<Metric id="RefundOldTrans">632704</Metric>
		<Metric id="Database">12967</Metric>
		<Metric id="Global.CurrentUser">2299194</Metric>
		<Metric id="Global.CurrentUser_FetchIdentityFromDatabase">13752614</Metric>
	</MetricsSuper>
</Content>'

select x.t.value('@aaa', 'varchar(1000)') q1
from @xml.nodes('/Content/MetricsSuper') x(t)


Вам же надо извлечь элементы MetricsSuper и разобрать как строку.
23 июл 19, 11:31    [21932484]     Ответить | Цитировать Сообщить модератору
 Re: xml, текст у элементов найти  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Владислав Колосов
NewIvanovec,

должно быть так:

Кому должно? :)

NewIvanovec,
select x.t.value('text()[1]', 'varchar(1000)') q1
    from @xml.nodes('Content/MetricsSuper') x(t)
23 июл 19, 12:00    [21932520]     Ответить | Цитировать Сообщить модератору
 Re: xml, текст у элементов найти  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31367
Владислав Колосов
должно быть так:
Хм, разве XML от автора противоречит спецификациям XML Org?

Не говоря о том, что ноды Metric тоже содержат текст, они по такой логике тоже "должны" быть переделаны в атрибуты.
23 июл 19, 12:09    [21932529]     Ответить | Цитировать Сообщить модератору
 Re: xml, текст у элементов найти  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
alexeyvg,

нет, не противоречат. Metric как раз "правильные", как атрибут-элементный вариант.
23 июл 19, 13:39    [21932641]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить