powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
11 сообщений из 11, страница 1 из 1
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102745
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу прочитать xml в заголовке которого находиться <?xml version="1.0" encoding="UTF-8"?>
Код: sql
1.
2.
3.
4.
5.
DECLARE @MyXml xml = '<?xml version="1.0" encoding="UTF-8"?>' +
'<Запись>42</Запись>'

SELECT t.c.value(('./Запись)',VARCHAR(32))
FROM @MyXml.Nodes ('') as t(c)


Но вылезает ошибка синтаксического анализа из за указанного выше заголовка.
Если убрать заголовок, то всё работает

Можно это исправить без CONVERT ?
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102754
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B

Можно это исправить без CONVERT ?


Как это исправить с convert?

В MS SQL xml имеет кодировку UTF-16.
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102767
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B

Но вылезает ошибка синтаксического анализа из за указанного выше заголовка.
Если убрать заголовок, то всё работает

Можно это исправить без CONVERT ?

убрать информацию о кодировке
Код: sql
1.
2.
DECLARE @MyXml xml = replace('<?xml version="1.0" encoding="UTF-8"?>', N'encoding="UTF-8"', '') +
'<Запись>42</Запись>'



ЗЫЖ и запрос совсем неверный
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102770
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot,

Вопрос был
Valery_B

Можно это исправить без CONVERT ?

В смысле без REPLACE / CONVERT
т.к. именно так я сейчас и делаю

А запрос совсем не верен)
Но не суть, т.к. я не могу записать в переменную значение, а не сделать запрос.
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102783
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лёгкие танцы с бубном
Код: sql
1.
2.
3.
4.
declare @X table (XX varchar(max) COLLATE Cyrillic_General_100_CI_AI_WS_SC_UTF8 ); 
insert into @x select '<?xml version="1.0" encoding="UTF-8"?><Запись>42</Запись>'
DECLARE @MyXml xml = (select xx from @X)
select @MyXml


для версий сервера, умеющих в Cyrillic_General_100_CI_AI_WS_SC_UTF8
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102791
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st,

Видать так тоже можно, не знал, спасибо.
Но да, танец с бубном. Наверное всё таки через REPLACE проще.

У меня строка в 20мб на входе в сторед процедуру, которая принимает параметр XML и раскладывает его таблицу.
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102884
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B
andy st,

Видать так тоже можно, не знал, спасибо.
Но да, танец с бубном. Наверное всё таки через REPLACE проще.


Еще проще - substring.

Но один чорт, тема convert не раскрыта.
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40102968
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B
andy st,

Видать так тоже можно, не знал, спасибо.
Но да, танец с бубном. Наверное всё таки через REPLACE проще.

У меня строка в 20мб на входе в сторед процедуру, которая принимает параметр XML и раскладывает его таблицу.


тут не обязательно писать в таблицу
Код: sql
1.
DECLARE @MyXml xml = N'<?xml version="1.0" encoding="UTF-8"?><Запись>42</Запись>'  collate Cyrillic_General_100_CI_AI_WS_SC_UTF8



но данный коллейт пошел только с 19 версии
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40103079
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot
тут не обязательно писать в таблицу
Код: sql
1.
DECLARE @MyXml xml = N'<?xml version="1.0" encoding="UTF-8"?><Запись>42</Запись>'  collate Cyrillic_General_100_CI_AI_WS_SC_UTF8



Ах, если бы такая пижня работала...
однако ой:
Msg 9402, Level 16, State 1, Line 1
XML parsing: line 1, character 38, unable to switch the encoding
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40103085
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

Вы похоже развлекаетесь с проблемой аналогичной той, в моем посте.

Почитайте. https://www.sql.ru/forum/1339259/problema-s-parzingom-xml Там с кодировкой тоже были развлечения.
...
Рейтинг: 0 / 0
Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
    #40103178
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Valery_B,

Вы похоже развлекаетесь с проблемой аналогичной той, в моем посте.

Почитайте. https://www.sql.ru/forum/1339259/problema-s-parzingom-xml Там с кодировкой тоже были развлечения.


Ты в своей проблеме ничего так и не понял.
Но советы даешь.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип XML ломается на <?xml version="1.0" encoding="UTF-8"?>
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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