OK、StreamReader を使用してストリームからデータを読み取っています。ストリーム内のデータは xml ではなく、何でもかまいません。
入力 StreamReader に基づいて、XmlTextWriter を使用して出力ストリームに書き込みます。基本的に、出力ストリームには、親要素に含まれる要素にラップされた入力ストリームからのデータが含まれます。
私の問題は 2 つあります。データは入力ストリームからチャンクで読み取られ、StreamReader クラスは char[] を返します。入力ストリームのデータに「]]>」が含まれている場合、2 つの CDATA 要素に分割する必要があります。まず、char 配列で "]]>" を検索するにはどうすればよいですか? 次に、チャンクで読み取っているため、"]]>" 部分文字列が 2 つのチャンクに分割される可能性があります。
おそらく、char[] を文字列に変換し、検索置換を行うことができます。それは私の最初の問題を解決するでしょう。読み取るたびに、最後の文字が「]」であるかどうかを確認することもできたので、次の読み取りで最初の 2 文字が「]>」であれば、新しい CDATA セクションを開始します。
これは、char 配列を文字列に変換する必要があるため、ほとんど効率的ではありません。つまり、データのコピーに時間がかかり、2 倍のメモリを消費します。スピードに関してもメモリに関しても、より効率的な方法はありますか?