![]() |
#1 |
Участник
|
Записать CDATA в поле XML в MS SQL
Вопрос не совсем по Axapta, но исходные данные готовятся в Axapta
![]() Необходимо в поле типа XML записать предварительно сформированную строку, содержащую CDATA. Проблема в том, что при прямой записи происходит автоконвертация и как ее избежать - непонятно Код: declare @test nvarchar(max), @testXML xml --Исходные данные из Axapta set @test = N'<DocumentData><![CDATA[<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" />]]></DocumentData>' select @test --Результат записи в XML set @testXML = @test select @testXML Код: <DocumentData><ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" /></DocumentData>
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#2 |
Участник
|
SQLXML - https://learn.microsoft.com/en-us/sq...l-server-ver17
Иными средствами: 1. Не использовать xml для подобных целей; 2. Изобрести велосипед и парсить xml. Последний раз редактировалось Товарищ ♂uatr; 08.08.2025 в 20:29. |
|
![]() |
#3 |
Участник
|
Я правильно понимаю, что CDATA - это аналог обратного слеша в Axapta? Т.е. некий управляющий символ, который сам не записывается, но дает указание о том, как записать экранированные им символы?
Другими словами, требование заказчика добавить в XML "скобки" CDATA - не имеют смысла? Они и не должны отображаться в XML
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#4 |
Участник
|
Да, это некая управляющая конструкция (управляет поведением парсера), которая не пишется в базу.
|
|
![]() |
#5 |
Участник
|
Не знаю, что за CDATA но предлагаю по-боцмански - сконвертить строку в какой-нибудь base64, а когда будут доставать расконверить обратно
![]() |
|
![]() |
#6 |
Участник
|
Ну и вот тут нашлось что-то похожее
https://stackoverflow.com/questions/...ata-in-sql-xml FOR XML EXPLICIT |
|
Теги |
ms sql, xml |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|