powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / потеря CDATA секции
2 сообщений из 2, страница 1 из 1
потеря CDATA секции
    #39864247
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему такой разный результат?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        
select val from 
        (
            select * from 
            (
                SELECT 1 AS Tag, 0 AS Parent, ''   AS [add_info_format!1], null AS [add_info!2], null AS [add_info!2!body!CDATA]
                UNION ALL
                SELECT 2 as Tag, 1 as Parent, null AS [add_info_format!1], ''   AS [add_info!2]
                    ,N'Открытое письмо' AS [add_info!2!body!CDATA]
            ) t FOR XML EXPLICIT, BINARY BASE64
        )x(val) 



<add_info_format><add_info><body><![CDATA[Открытое письмо]]></body></add_info></add_info_format>


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare @val xml = 
(
        select val from 
        (
            select * from 
            (
                SELECT 1 AS Tag, 0 AS Parent, ''   AS [add_info_format!1], null AS [add_info!2], null AS [add_info!2!body!CDATA]
                UNION ALL
                SELECT 2 as Tag, 1 as Parent, null AS [add_info_format!1], ''   AS [add_info!2]
                    ,N'Открытое письмо' AS [add_info!2!body!CDATA]
            ) t FOR XML EXPLICIT, BINARY BASE64
        )x(val) 
);
select @val



<add_info_format><add_info><body>Открытое письмо</body> </add_info></add_info_format>
...
Рейтинг: 0 / 0
потеря CDATA секции
    #39864287
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При конвертации в xml CDATA преобразуется в текст с escape-последовательностями.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @val varchar(max) = 
(
        select val from 
        (
            select * from 
            (
                SELECT 1 AS Tag, 0 AS Parent, ''   AS [add_info_format!1], null AS [add_info!2], null AS [add_info!2!!CDATA]
                UNION ALL
                SELECT 2 as Tag, 1 as Parent, null AS [add_info_format!1], ''   AS [add_info!2]
                    ,N'<Открытое письмо>' AS [add_info!2!!CDATA]
            ) t FOR XML EXPLICIT, BINARY BASE64
        )x(val) 
);

select @val, cast(@val as xml);



Нужна CDATA - не конвертируйте в xml.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / потеря CDATA секции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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