Analyse XML efficace en C # pour les grands fichiers GML
Grands fichiers XML, tels que ceux au format GML, les défis actuels pour l'analyse dû à des contraintes de mémoire. Cette question explore efficacement diverses approches pour analyser efficacement les données XML, en considérant le cas spécifique d'extraction des fonctionnalités d'un schéma basé sur GML.
xmlreader: une option efficace
L'approche pour l'analyse de grands fichiers XML consiste à utiliser XMLReader, qui fournit un accès non cache et non en cache avant aux données XML. Cette approche est à la fois économe en mémoire et équivalente à un simple lecteur de sax.
using (XmlReader myReader = XmlReader.Create(@"c:\data\coords.xml")) { while (myReader.Read()) { // Process each node (myReader.Value) here // ... } }
xmlReader est capable de traiter des fichiers jusqu'à 2 gigaoctetes (gb) en taille.
Autres considérations
Les analyseurs et XMLSerializer ne conviennent généralement pas aux grands fichiers XML en raison de leur consommation de mémoire élevée. XMLSerializer nécessite une connaissance initiale du schéma XML, qui peut être un inconvénient significatif.
xlinq: une alternative
xlinq, une extension à linq, fournit une alternative fonctionnelle à XmlReader. Il offre une représentation en mémoire des données XML, mais avec des fonctionnalités d'optimisation de la mémoire qui le rendent adapté aux fichiers XML plus grands.
Conclusion
pour l'analyse efficace de la grande XML Fichiers en C #, XMLReader est l'approche recommandée. Il fournit un accès uniquement vers l'avant, une faible consommation de mémoire et la possibilité de traiter des fichiers jusqu'à 2 Go. Pour des fichiers encore plus grands, envisagez d'utiliser xlinq, qui fournit une optimisation de la mémoire grâce à une représentation en mémoire et à un chargement paresseux.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3