Lorsqu'ils sont confrontés à l'analyse de documents XML volumineux, les développeurs C# sont aux prises avec le choix entre plusieurs approches, chacune avec ses propres propres implications sur l'efficacité de la mémoire.
Sérialisation XML vs La sérialisation XSD
XML et les liaisons générées par XSD offrent un moyen pratique et structuré de mapper XML à des objets C#. Cependant, ces approches reposent sur la mise en cache de l'intégralité du document XML en mémoire, ce qui peut s'avérer problématique pour les fichiers volumineux.
XmlReader vs Hand-crafted Objects
XmlReader propose une approche avancée -approche basée uniquement sur le flux, consommant moins de mémoire que les analyseurs DOM. Cependant, cela nécessite un graphe d'objets méticuleux conçu à la main pour capturer la structure du XML.
XLINQ : une alternative astucieuse
XLINQ apparaît comme un compromis entre les deux. Il fournit une API légère orientée objet pour manipuler XML, évitant la surcharge du DOM tout en permettant un streaming efficace.
Considérations sur la mémoire
Solution Recommandation
Pour les documents XML volumineux (par exemple, votre extrait estimé à 150 Mo), XmlReader avec un graphique d'objets créé à la main est recommandé. Cette approche offre la meilleure efficacité de mémoire tout en permettant un processus d'analyse flexible et personnalisable.
Exemple de code utilisant XmlReader :
using (XmlReader myReader = XmlReader.Create(@"c:\data\coords.xml")) { while (myReader.Read()) { // Process each node (myReader.Value) here // ... } }
Référence :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!