15 votes

Différence entre un analyseur XML SAX, un analyseur Pull et un analyseur DOM dans Android

Je veux savoir quelle est la différence entre XML Analyseur SAX, Analyseur Pull et Analyseur DOM dans Android. Dans quelles conditions, laquelle est la meilleure en termes de performances et de mise en œuvre ?

Merci. Khobaib.

33voto

Shivanand Darur Points 738

Dom Parser - Il utilise basé sur l'objet C'est-à-dire qu'il charge d'abord l'ensemble du XML en mémoire, convertit les nœuds XML en objets et commence ensuite à les analyser. Elle est donc plus lente.

Analyseur SAX et PULL - ils utilisent basé sur des événements approche. Les deux sont presque identiques en termes de mémoire et de performances. Toutefois, il existe quelques situations distinctes dans lesquelles il convient de les utiliser, comme décrit ci-dessous.

Dom Parser - Utilisez-le quand vous en avez besoin valider l'ensemble du XML avant de l'analyser. Ne l'utilisez jamais lorsque le XML est trop volumineux et que la validation peut être compromise. Une fois qu'il commence l'analyse, il analyse du nœud de départ au nœud d'arrivée. Il n'y a aucun moyen d'analyser seulement des nœuds particuliers.

SAX - Utilisez-le lorsque vous voulez analyser l'ensemble du XML. Une fois qu'il commence l'analyse, il analyse du nœud de départ au nœud d'arrivée. Il n'y a aucun moyen d'analyser seulement des nœuds particuliers.

PULL - Utilisez-le lorsque vous ne voulez pas analyser l'intégralité du XML. Il est plus facile à mettre en œuvre que SAX, car vous n'avez pas à maintenir l'état de votre analyseur. Vous pouvez extraire uniquement un nœud particulier qui vous intéresse.

Ma suggestion est la suivante : il faut validation - Go for DOM La taille du fichier est petit ou si vous n'êtes pas intéressé par l'analyse syntaxique de l'ensemble du XML, optez pour PULL La taille du fichier est grand site ou vous devez analyser le tout le XML fichier - Allez-y pour SAX .

14voto

Kumar Vivek Mitra Points 19369

Sax Parser : S Analyse de nœud à nœud, en utilisant la traversée descendante, analyse sans stockage du xml, Plus rapide que Dom La manipulation des noeuds comme l'insertion ou la suppression est autorisée. Nécessite SAXParserFactory

Dom Parser : D Stocke tout le xml en mémoire avant le traitement, le traverse dans n'importe quelle direction, [ ] Besoin de DocumentBuilderFactory

Pull Parser : Il offre plus de contrôle et de vitesse que les deux précédents. Nécessite pullParserFactory

0voto

Chris Dargis Points 3200

En ce qui concerne les performances, SAX utilise généralement beaucoup moins de mémoire. Et vous ne traitez que les événements que vous voulez, par exemple startElement(), startDocument(), endElement(), etc. etc. DOM chargera l'intégralité du fichier XML en mémoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X