サイズが 400 ~ 500MB を超える XML ファイルを処理する際に、メモリ フットプリントを小さくする必要があります。これは、任意の時点で 1 回だけファイルをメモリ内にロードできることを意味します (たとえば、文字列オブジェクト内)。データ構造は、要素がいくつかのレベルだけにネストされていますが、数が多い (つまり、多数のデータ行がいくつかのレベルにグループ化されている) ようになっています。
処理中に、一部のデータを直接 (つまり、ファイルから読み取ったとおりに、Unicode 文字単位で) 別のストリームに転送する必要があります。ファイルの他の部分では、情報を (通常は属性値の形式で) 削除/追加し、場合によっては結果をバイト一貫性のある方法で別のストリームに転送する必要があります (つまり、同じ方法でデータを削除または追加すると、常に同じ結果)。
XmlReader と XmlTextReader を調べましたが、Read() であったノードの正確なテキストを取得する方法は提供されていません。何か不足していますか?