我有一个带有双引号和换行符的字符串(代表一些 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>
接下来,我使用 XERCES C++ 库将此内存中的字符串放入 CDATA 部分。并且当 XML 数据进一步序列化为字符串时,编码后的字符串(带有转义引号和换行符)出现在 XML 数据中。
如何确保 XML 中的 CDATA 部分没有转义引号和换行符?
非常感谢!