2012-07-02 14 views

Respuesta

1

Esto no es una cuestión de programación, pero de todos modos se puede empezar por mirar SAX parser vs XMLPull parser

Yo sugeriría hacer más investigación antes de publicar.

11

Sax Analizador: API simple de XML nodo Parse a nodo, usando desplazamiento de arriba hacia abajo, analizar sin almacenar xml, rápido en comparación con Dom Manipulación de nodo como inserción o deleción está permitido. Necesidades SAXParserFactory

Dom Analizador: Document Object Model Tiendas XML completos en la memoria antes de la transformación, traverse en cualquier dirección, no está permitido Manipulación de nodo como inserción o eliminación. Necesita DocumentBuilderFactory

Pull Analizador: Proporciona más control y velocidad de los dos anteriores. Necesita pullParserFactory

+2

¿No es contrario a esto con Sax y DOM? ¿Dom permite la inserción y eliminación mientras Sax es solo un analizador? Referencia: http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html – Benjamin

+1

Hola, administradores, por favor editan la respuesta (porque esta tiene la mayoría de los votos) de acuerdo con lo anterior comentario: DOM ** permite ** insertar/eliminar nodos, mientras que SAX ** no ** – radistao

+0

¿Por qué Sax es más rápido que Pull? Para Pull, incluso puede detener el análisis mientras lee, por lo que significa que puede hacer menos trabajo si es necesario ... –

0

En cuanto al rendimiento, SAX generalmente usará mucha menos memoria. Y solo maneja los eventos que desea, p. startElement(), startDocument(), endElement(), etc., y por lo tanto solo guardará los datos específicos que desee. DOM cargará todo el archivo XML en la memoria.

27

Dom Analizador - Se utiliza basado enfoque objeto. es decir, primero carga el XML completo en la memoria, convierte los nodos XML en objetos y luego comienza a analizarlos. Por lo tanto, es bastante más lento.

SAX y tire Analizador - Utilizan basado enfoque evento. Ambos son casi iguales en términos de memoria y rendimiento. Sin embargo, hay pocas situaciones distintivas sobre cuándo usarlas como se describe a continuación.

Dom Analizador - Se usa cuando se necesita para validar todo el XML antes de analizar. Nunca lo use cuando el XML es demasiado grande y la validación puede verse comprometida. Una vez que se inicia el análisis, se analiza desde el nodo inicial al nodo final. no hay forma de analizar solo nodos particulares.

SAX - Úselo cuando desee analizar todo el XML. Una vez que se inicia el análisis, se analiza desde el nodo inicial al nodo final. no hay forma de analizar solo nodos particulares.

PULL - Úselo cuando no desee analizar todo el XML.Es más fácil de implementar que SAX, porque no tiene que mantener el estado de su analizador. Puede obtener solo un nodo en particular que le interese.

Mi sugerencia es - Necesidad de validación - Ir de DOM, tamaño del archivo es pequeña o si no está interesado en el análisis de la totalidad de XML Ir para TIRE, tamaño del archivo es gran o si tiene que analizar el código XML toda archivo - Ir de SAX.

+0

SAX tiene problemas con la etiqueta de cierre automático http://stackoverflow.com/questions/2707531/trouble-parsing-self- closing-xml-tags-using-sax-parser – vuhung3990

Cuestiones relacionadas