我有一个字符串(代表一些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部分没有转义引号和换行符?
非常感谢!