C# での大規模な XML の解析
地理情報システム (GIS) で使用されるような大規模な XML データセットには、効率的な解析手法が必要です。メモリの制約を回避します。この記事では、メモリ使用量に焦点を当てて、C# で大きな XML ファイルを解析するための最良の方法について説明します。
DOM パーサーの代替
ドキュメント オブジェクト モデル (DOM) パーサーは、メモリ内に XML ドキュメント全体のツリー状の表現を作成しますが、大規模なデータセットには適していません。したがって、ここでは代替手法に焦点を当てます。
XmlSerializer と XSD.EXE で生成されたバインディング
XmlSerializer および XSD.EXE で生成されたバインディングは、XML ファイルの解析に使用できます。 , ただし、どちらにも制限があります。 XmlSerializer には事前定義されたスキーマが必要ですが、XSD.EXE で生成されたバインディングは複雑でエラーが発生しやすい可能性があります。非キャッシュ XML パーサーのみが、優れたメモリ効率を提供します。 XML 構造にマッピングする手作りのオブジェクト グラフを実装することで、ドキュメント全体をメモリに保持せずに大きなファイルを解析できます。
推奨事項: XmlReader
C# でギガバイト サイズの XML ファイルを解析する場合は、メモリ使用量が少なく、順方向専用であるため、XmlReader を強くお勧めします。 Nature.
使用例
次のコード スニペットは、XmlReader を使用して大きな XML ファイルを処理する方法を示しています。
結論
C# で大きな XML ファイルを解析するには、メモリ使用量を慎重に考慮する必要があります。 XmlReader は、メモリ オーバーヘッドが低いため、ギガバイト サイズのファイルを処理する場合に最適です。手作りのオブジェクト グラフを実装すると、XML 構造の効率的なマッピングが可能になります。using (XmlReader myReader = XmlReader.Create(@"c:\data\coords.xml")) { while (myReader.Read()) { // Process each node (myReader.Value) here // ... } }
以上がC# でギガバイトサイズの XML ファイルを効率的に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。