Question

Je l'ai fait l'analyse syntaxique XML, mais jamais à une échelle massive. Si je travaille avec de nombreux documents similaires à ce format:

<?xml version="1.0" ?>
<items comment="something...">
  <uid>6523453</uid>
  <uid>94593453</uid>
</items>

Quelle est la plus rapide pour analyser ces documents?
1) XML DOM
2) XML sérialisation - Réhydrater à un objet .NET
3) Une autre méthode

UPDATE J'ai oublié de mentionner qu'il y aurait environ 8000 éléments uid en moyenne.

Était-ce utile?

La solution

Utilisation XmlReader va certainement être la méthode la plus rapide, bien que vous aurez à faire tout le parsing manuellement bien sûr. Il se lit directement à partir du flux sans rien mettre en cache, mais il est pas trop commode d'utiliser par rapport au DOM.

En comparant les deux que vous avez suggéré: sérialisation devrait être plus rapide que d'utiliser le DOM depuis (je crois), il ne cache pas l'arbre entier dans la mémoire - il a aussi certainement un plus facile à utiliser l'interface, si vous êtes spécifiquement en vue pour effectuer la sérialisation.

Autres conseils

Je dirais que la sérialisation Xml serait le meilleur des deux mondes. Vous obtenez la facilité d'utilisation, ainsi qu'une bonne vitesse. Il y a une charge supplémentaire avec sérialisation xml ... si vous avez utilisé XmlReader manuellement, vous au moins reproduire, sinon dépasser, que les frais généraux sur votre propre que vous utilisez ce lecteur pour recréer votre objet graphique.

En fonction de ce que vous devez faire avec les données XmlReader mentionné par @Noldorin est votre meilleur pari pour le traitement de style de streaming. Si vous avez besoin d'un accès plus de style ad hoc aux données en utilisant XPath et XPathDocument sera beaucoup plus rapide que le document XML brut.

http://msdn.microsoft.com/en-us/library /eh3exdc4.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top