大規模な XML ドキュメントの解析に直面したとき、C# 開発者は、いくつかのアプローチの選択に苦心します。独自のメモリ効率への影響。
XML シリアル化とXSD
XML シリアル化と XSD で生成されたバインディングは、XML を C# オブジェクトにマップするための便利で構造化された方法を提供します。ただし、これらのアプローチは XML ドキュメント全体をメモリにキャッシュすることに依存しているため、大きなファイルの場合は問題が発生する可能性があります。
XmlReader と手作りのオブジェクト
XmlReader は、フォワードを提供します。 - ストリームのみのアプローチで、DOM パーサーよりもメモリ消費量が少なくなります。ただし、XML の構造をキャプチャするには、細心の注意を払って手作りされたオブジェクト グラフが必要です。
XLINQ: 洗練された代替手段
XLINQ は、この 2 つの間の妥協案として登場しました。 XML を操作するための軽量のオブジェクト指向 API を提供し、効率的なストリーミングを可能にしながら DOM のオーバーヘッドを回避します。
メモリに関する考慮事項
ソリューション推奨事項
大規模な XML ドキュメント (推定 150 MB の抽出など) の場合は、手作りのオブジェクト グラフを備えた XmlReader をお勧めします。このアプローチは、柔軟でカスタマイズ可能な解析プロセスを有効にしながら、最高のメモリ効率を提供します。
XmlReader を使用したサンプル コード:
using (XmlReader myReader = XmlReader.Create(@"c:\data\coords.xml")) { while (myReader.Read()) { // Process each node (myReader.Value) here // ... } }
リファレンス:
以上がC# での大規模な XML 解析: XSD、XLINQ、または XmlReader – メモリ効率を高めるにはどのアプローチが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。