次のような二重引用符と改行文字を含む文字列(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 セクションに引用符と改行文字がエスケープされていないことを確認するにはどうすればよいですか?
どうもありがとう!