0

我有一个带有双引号和换行符的字符串(代表一些 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 部分没有转义引号和换行符?

非常感谢!

4

0 回答 0