Никогда не делайте XML как строковые литералы, так как это обычно не срабатывает где-то в будущем, особенно когда ваши данные сами содержат символы, которые нужно как-то экранировать.
Вам необходимо использовать класс TDomCDATASection для чеготы хочешь.Это оболочка Delphi для CDATASection XML DOM ( DOMCDATASection ).
Пример использования его для хранения данных в кодировке Base64: здесь .
Обратите внимание, что вам необходимо согласовать набор символов и формат необработанных байтов (старшего, младшего, 8-битного, 16-битного и т. д.) ваших строковых данных, чтобы вы моглисделать правильную кодировку base64.
Редактировать:
Для вставки CDATA в ваш ответ SOAP необходимо перейти к металлу.
ЕстьМожно попробовать несколько способов:
- Создать потомка методов
TOPToSoapDomConvert
- Переопределить
TSOAPDomConv.ConvertNativeDataToSoap
или TOPToSoapDomConvert.MakeResponse
в своем потомке - Назначить экземплярвашего
TOPToSoapDomConvert
потомка к свойству Converter
вашего THTTPRIO
экземпляра
Другой способ может быть таким:
- Создать потомка
TTypeTranslator
- Переопределить
TTypeTranslator.CastNativeToSoap
- Назначить экземпляр вашего
TTypeTranslator
потомка переменной TypeTranslator
в TypeTrans
unэто
Трудно, не идите этим путем, если вам это не нужно.
- jeroen