Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отобразить все атрибуты xml / 15 сообщений из 15, страница 1 из 1
15.01.2020, 13:03
    #39914252
Igorgg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
Здравствуйте.
Скажите есть xml примерного вида:


declare @x xml = '<?xml version="1.0" encoding="Windows-1251"?>
<CustomAttributes>
<Attribute name="т"> 9999999999</Attribute>
<Attribute name="имя">test</Attribute>
</CustomAttributes>'

Можно ли каким-то образов сделать Select,чтобы он в результате отобразил все атрибуты.

Select from @xml , чтобы вывелось т,имя.

Спасибо.
...
Рейтинг: 0 / 0
15.01.2020, 13:18
    #39914265
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
Igorgg,

Код: sql
1.
2.
3.
select 
	t.c.value('@name','varchar(20)') as name
from @x.nodes('CustomAttributes/Attribute') as t(c)
...
Рейтинг: 0 / 0
15.01.2020, 13:23
    #39914270
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
court
Igorgg,

Код: sql
1.
2.
3.
select 
	t.c.value('@name','varchar(20)') as name
from @x.nodes('CustomAttributes/Attribute') as t(c)



падает с ошибкой
...
Рейтинг: 0 / 0
15.01.2020, 13:24
    #39914272
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
entrypoint
court
Igorgg,

Код: sql
1.
2.
3.
select 
	t.c.value('@name','varchar(20)') as name
from @x.nodes('CustomAttributes/Attribute') as t(c)




падает с ошибкой
Ошибка матом, надеюсь ?
...
Рейтинг: 0 / 0
15.01.2020, 13:24
    #39914273
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
Igorgg,
...
Рейтинг: 0 / 0
15.01.2020, 13:28
    #39914276
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
court

court
entrypoint
пропущено...


падает с ошибкой
Ошибка матом, надеюсь ?


Виноват
Всё ОК
подвело форматирование

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @x xml = '
<?xml version="1.0" encoding="Windows-1251"?>
<CustomAttributes>
<Attribute name="т"> 9999999999</Attribute>
<Attribute name="имя">test</Attribute>
</CustomAttributes>'

select 
	t.c.value('@name','varchar(20)') as name
from @x.nodes('CustomAttributes/Attribute') as t(c)



Код: sql
1.
2.
Сообщение 9438, уровень 16, состояние 1, строка 1
XML parsing: line 2, character 6, text/xmldecl not at the beginning of input



тогда просто так ))))
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE @x XML = '<?xml version="1.0" encoding="Windows-1251"?>
<CustomAttributes>
<Attribute name="т"> 9999999999</Attribute>
<Attribute name="имя">test</Attribute>
</CustomAttributes>';

SELECT 
       t.c.value( '@name[1]', 'varchar(20)' ) AS name
FROM 
     @x.nodes( '/CustomAttributes[1]/Attribute' ) AS t(c);
...
Рейтинг: 0 / 0
15.01.2020, 13:31
    #39914280
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
entrypoint
Сначала нужно удалить XML декларацию и всё будет ОК
Умник продолжает умничать...


Igorgg,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @x xml = '<?xml version="1.0" encoding="Windows-1251"?>
<CustomAttributes>
<Attribute name="т"> 9999999999</Attribute>
<Attribute name="имя">test</Attribute>
</CustomAttributes>';

select
 t.n.value('@name', 'varchar(30)'),
 t.n.value('text()[1]', 'varchar(100)')
from
 @x.nodes('/CustomAttributes/Attribute') t(n);
...
Рейтинг: 0 / 0
15.01.2020, 13:33
    #39914284
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
invm,

наслаждайтесь )))
22056482
...
Рейтинг: 0 / 0
15.01.2020, 13:38
    #39914288
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
entrypoint,

всё работает, зачем заголовок удалять?
...
Рейтинг: 0 / 0
15.01.2020, 13:41
    #39914291
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
invm,

Умник продолжает умничать...

зачем ?
Код: sql
1.
 t.n.value('text()[1]', 'varchar(100)')



автор приводит пример результата, который хочет получить

Select from @xml , чтобы вывелось т,имя .

Нет там никаких значений элементов
...
Рейтинг: 0 / 0
15.01.2020, 13:41
    #39914292
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
Владислав Колосов,

Владислав Колосов
entrypoint,

всё работает, зачем заголовок удалять?


22059710
...
Рейтинг: 0 / 0
15.01.2020, 13:58
    #39914310
Igorgg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
Огромное спасибо
...
Рейтинг: 0 / 0
15.01.2020, 14:00
    #39914312
nullin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
а с collation как быть при парсинге что-то не пойму?
...
Рейтинг: 0 / 0
15.01.2020, 14:22
    #39914337
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
entrypoint
Владислав Колосов,

Владислав Колосов
entrypoint,

всё работает, зачем заголовок удалять?


22059710


Вы подменили исходный текст сообщения, пока я писал.
...
Рейтинг: 0 / 0
15.01.2020, 16:01
    #39914404
nullin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить все атрибуты xml
nullin
а с collation как быть при парсинге что-то не пойму?

Вот же протупил, вот так надо сделать. Спасибо Glory )
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @x as xml 
set @x = N'<CustomAttributes>
<Attribute name="т"> 9999999999</Attribute>
<Attribute name="имя">test</Attribute>
</CustomAttributes>';

select
 t.n.value('@name', 'nvarchar(30)'),
 t.n.value('text()[1]', 'nvarchar(100)')
from
 @x.nodes('/CustomAttributes/Attribute') t(n);
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отобразить все атрибуты xml / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]