Hay un montón de opciones para analizar XML’s en el iPhone.
El mismo SDK del iPhone trae dos librerías distintas para poder escoger, pero además existen librerías de terceros disponibles, como podrían ser TBXML, TouchXML, KissXML, TinyXML y GDataXML.
Descripción de las librerías
A continuación mostraremos una breve descripción de estas librerías:
- NSXMLParser es un parseador SAX incluido por defecto con el SDK iPhone. Está escrito en Objective-C y es muy sencillo de usar, pero quizás no es tan fácil como el modelo DOM.
- libxml2 es una librería Open Source que se incluye por defecto con el SDK iPhone. Se trata de una API basada en C, por lo que es un poco más laboriosa de usar que NSXML. La biblioteca es compatible con DOM y SAX. El parseador libxml2 SAX es especialmente cool, ya que tiene una característica única de poder analizar los datos mientras está siendo leído. Por ejemplo, podríamos estar leyendo un documento XML muy pesado de internet y ir mostrando los datos al usuario mientras se va descargando el archivo.
- TBXML es un parseador DOM XML diseñado para ser tan rápido como sea posible mientras que consume pocos recursos de memoria. Se ahorra tiempo al no realizar la validación, no soportando XPath, y siendo de sólo lectura – es decir, se puede leer XML con él, pero entonces no puedes modificar el XML y volverlo a escribir otra vez.
- TouchXML es un parseador DOM XML parecido a NSXML para el iPhone. Al igual que TBXML, también es de sólo lectura, pero a diferencia de TBXML soporta XPath.
- KissXML es otro parseador DOM XMLparecido a NSSXML para el iPhone, basado TouchXML. La principal diferencia es que KissXML también soporta la edición y la escritura XML, así como la lectura.
- TinyXML es un pequeño parseador DOM XML basado en C que se compone de sólo cuatro archivos C (.c) y dos headers (.h). Es compatible tanto con la lectura y escritura de documentos XML, pero no soporta XPath. Sin embargo, puede utilizar la librería TinyXPath para eso.
- GDataXML es otro parseador DOM XML parecido a NSXML para el iPhone, desarrollado por Google como parte de sus librerías Objective-C. Consta de sólo un archivo M 8.m) y un header (.h), que soporta la lectura y la escritura de documentos XML y consultas XPath.
¿Cuál escoger?
La elección de uno o otro realmente depende de lo que quieras hacer con el xml, es decir:
- Si queremos leer pequeños documentos XML, el rendimiento no importa tanto. Probablemente nos decantaremos con una librería que soporte XPath y algo que esté escrito en Objective-C para que sea más sencillo. Recomendaríamos TouchXML, KissXML o GDataXML para este caso.
- Si queremos leer y escribir pequeños documentos XML, una vez el rendimiento no es tan importante como la funcionalidad y facilidad de uso. En este caso nos decantaremos por una librería que también soporte XPath, escrito en Objective-C, con lectura / escritura. Recomendaríamos KissXML o GDataXML para este caso.
- Si lo que queremos es leer documentos XML muy grandes, el rendimiento es la cuestión fundamental aquí. Consideraríamos libxml2 SAX, TBXML, o DOM libxml para esto, dependiendo de nuestro caso.
¿Qué pasa con los parsers no mencionados anteriormente?
- NSXML es una opción decente si estás tratando con documentos relativamente pequeños, y no quieres añadir una biblioteca de terceros para el SDK.
- TinyXML podría ser una buena elección para documentos de tamaño mediano, si ya tienes experiencia con la API y te sientes cómodo trabajando en C, ya que es fácil incorporarlo al iPhone.
Con esto ya tenemos un gran abanico de posibilidades a la hora de trabajar con xml’s en iPhone.
A continuación dejo unas gráficas donde podemos ver el rendimiento de cada uno, la memoria que usan, y una tabla comparativa:
Visto aquí, donde también podemos descargarnos una aplicación que compara las velocidades de las distintas tecnologías.



Superior information and facts covered by articles could make up for the best e-book