Desarrollo de iPhone-XMLParser vs. libxml2 vs. TouchXML
xml-parsing (3)
No puedo encontrar una comparación de esta técnica de análisis sintáctico. ¿Cuál es el más comúnmente utilizado?
Saludos. Mustafa
NSXMLParser es un analizador SAX , lo que significa que recorre el documento XML y le informa (a través de métodos delegados) de varios eventos (como iniciar un nodo xml, encontrar atributos, etc.). Este tipo de procesamiento XML es el mejor para analizar documentos enormes, y cuando solo necesita recuperar una pequeña cantidad de datos de un archivo grande.
A diferencia de SAX, está el modelo DOM , donde todo el árbol XML se analiza en la memoria (generalmente con una sola llamada), y luego se puede explorar libremente el documento XML desde la API presentada. En general, es mucho más fácil trabajar con esto, ya que obtiene acceso aleatorio a todo el documento xml.
Entonces, la primera pregunta que uno debe responder es la pregunta SAX vs DOM. Si está trabajando con grandes archivos XML (digamos 10 MB o más), es posible que desee seguir con SAX. Si está trabajando con pequeños archivos XML o pequeños fragmentos XML, a menudo es mucho más fácil usar DOM.
Si de hecho decides ir con DOM, tienes algunas opciones.
libxml2 es una API muy potente escrita en C. Es principalmente para el uso de estilo DOM, pero tiene otras opciones si tiene experiencia con ella. Pero, como está escrito en C, no suele ser atractivo para aquellos que están más familiarizados con Objective-C (objetos y autorrelease), o aquellos que vienen del mundo de .Net. Por lo tanto, existe una necesidad / deseo de un contenedor nativo Objective-C alrededor de libxml para hacerlo más familiar. TouchXML es uno de esos envoltorios. Funciona bien si solo necesita acceso de lectura al XML. Si desea modificar el XML, o crear fragmentos / documentos XML desde cero, le recomiendo que vaya con KissXML .
Ver XML Tutorial para iOS: Cómo elegir el mejor analizador XML para su proyecto de iPhone :
Hay muchas opciones a la hora de analizar XML en el iPhone. El iPhone SDK viene con dos bibliotecas diferentes para elegir, y hay varias bibliotecas populares de terceros disponibles como TBXML, TouchXML, KissXML, TinyXML y GDataXML. ¿Cómo puede un desarrollador elegir el mejor analizador XML para su proyecto?
Recientemente, he echado un vistazo a las diversas opciones que existen, y terminé extendiendo la muestra XMLPerformance de Apple para probar cada una de las bibliotecas anteriores a fin de conocer cómo funcionaban y comparar su rendimiento. Pensé en compartir lo que he aprendido hasta ahora con otros que podrían estar buscando la mejor biblioteca XML para su proyecto de iPhone.
En este tutorial en XML daremos una comparación detallada de las características y el rendimiento de las bibliotecas de iPhone más populares, explicaremos cómo elegir entre ellas y daremos un ejemplo de proyecto que muestra cómo leer datos XML utilizando cada una de las bibliotecas anteriores ...
Hay otra buena biblioteca de análisis XML basada en bloques: RaptureXML ( github ) de ZaBlanc , proporciona Objective-C API además de libxml2, definitivamente recomiendo probarlo.