У меня есть строка (представляющая некоторый код Javascript) с двойными кавычками и символами новой строки, такими как:
<script src="mytest.js"></script>
<script>
(function() {
var u = 'http://myserver.com/myapp.js';
document.write('script src="' + u + '"></scr'+'ipt'>);
})();
</script>
Эта строка хранится в базе данных MySQL, и я использую libzdb для чтения ее в строку C ++ в памяти.
Теперь я прочитал всю строку сценария в переменную C ++ std :: string. В результате двойные кавычки экранируются, а символы новой строки представляются символами \ r \ n. Таким образом, строка в памяти выглядит так:
<script src=\"mytest.js\"></script>\r\n<script>(function() {\r\n var u = 'http://myserver.com/myapp.js';\r\n document.write('script scr=\"' + u + '\"></scr'+'ipt'>);\r\n})();\r\n</script>
Затем я поместил эту строку в памяти в раздел CDATA с помощью библиотеки XERCES C ++. И когда данные XML дополнительно сериализуются в строку, закодированная строка (с экранированными кавычками и символами новой строки) появляется в данных XML.
Как я могу убедиться, что в разделе CDATA в XML нет кавычек и символов новой строки?
Большое спасибо!
Задача ещё не решена.
Других решений пока нет …