powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / A string literal was expected
6 сообщений из 6, страница 1 из 1
A string literal was expected
    #39972297
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет
помогите пожалуйста понять, прилетает такой xml:

Код: sql
1.
<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n\t<soap:Body>\n\t\t<date>2017-06-23</date>\n\t\t<name>test</name>\n\t</soap:Body>\n</soap:Envelope>



SQL server не воспринимает его как xml и говорит "A string literal was expected"

что можно сделать?

Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)
...
Рейтинг: 0 / 0
A string literal was expected
    #39972307
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно говорит, потому что в таком виде то не xml.
Как минимум надо \n, \t и экранирование кавычек убрать.
...
Рейтинг: 0 / 0
A string literal was expected
    #39972309
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare 
    @x Nvarchar (max) = 
        replace ( replace ( replace (
            N'<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n\t<soap:Body>\n\t\t<date>2017-06-23</date>\n\t\t<name>test</name>\n\t</soap:Body>\n</soap:Envelope>'
            , N'\n' , N''  )
            , N'\t' , N''  )
            , N'\"' , N'"' )

select @x

select cast ( @x as xml )



Дальше я сломался.
...
Рейтинг: 0 / 0
A string literal was expected
    #39972316
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sandist,

Идти и читать документацию по приему xml через SOAP

:)

PS.
если править руками, то нужно привести к такому виду
Код: xml
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<date>2017-06-23</date>
<name>test</name>
</soap:Body>
</soap:Envelope>
...
Рейтинг: 0 / 0
A string literal was expected
    #39972492
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ребята
настоял на том, чтобы передавали json
не стал заниматься предобработкой текста
...
Рейтинг: 0 / 0
A string literal was expected
    #39972525
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
настоял на том, чтобы передавали json
не стал заниматься предобработкой текста
Так они могут и json невалидный прислать :-)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / A string literal was expected
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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