32 votes

Développement iPhone - XMLParser vs. libxml2 vs. TouchXML

Je ne trouve pas de comparaison de ces techniques d'analyse syntaxique. Laquelle est la plus utilisée ?

Regards. Mustafa

58voto

Robbie Hanson Points 3090

NSXMLParser est un SAX analyseur, c'est-à-dire qu'il parcourt le document XML et vous informe (via des méthodes déléguées) de divers événements (comme le démarrage d'un nœud xml, la recherche d'attributs, etc.) Ce type de traitement XML est idéal pour l'analyse de documents volumineux et lorsque vous n'avez besoin que de récupérer une petite quantité de données dans un gros fichier.

À l'inverse de SAX, le DOM où l'intégralité de l'arbre XML est analysée en mémoire (généralement en un seul appel), puis vous pouvez explorer librement le document XML à partir de l'API présentée. Il est généralement beaucoup plus facile de travailler avec ce modèle, car vous avez un accès aléatoire à l'ensemble du document XML.

La première question à laquelle il faut répondre est donc celle de la comparaison entre SAX et DOM. Si vous travaillez avec de gros fichiers XML (disons 10 Mo ou plus), il est préférable de s'en tenir à SAX. Si vous travaillez avec de petits fichiers XML, ou de minuscules fragments XML, il est souvent beaucoup plus facile d'utiliser DOM.

Si vous décidez d'opter pour le DOM, vous avez plusieurs options.

libxml2 est une API très puissante écrite en C. Elle est principalement destinée à une utilisation de type DOM, mais offre d'autres options si vous devenez expérimenté. Mais, comme elle est écrite en C, elle n'est pas souvent attrayante pour ceux qui sont plus familiers avec Objective-C (objets, et autorelease), ou ceux qui viennent du monde .Net. Il existe donc un besoin/un désir de créer un wrapper Objective-C natif autour de libxml pour le rendre plus familier. TouchXML est l'un de ces wrappers. Il fonctionne bien si vous n'avez besoin que d'un accès en lecture au XML. Si vous voulez modifier le XML, ou créer des fragments/documents XML à partir de rien, je vous recommande d'utiliser KissXML .

3 votes

Hey Robbie, TouchXML a un support pour écrire du XML.

0 votes

14voto

Andrew Kovzel Points 419

Véase Tutoriel XML pour iOS : Comment choisir le meilleur analyseur XML pour votre projet iPhone :

Il y a beaucoup d'options quand il s'agit d'analyser le XML sur l'iPhone. Le SDK de l'iPhone est fourni avec deux bibliothèques différentes parmi lesquelles choisir, et il existe plusieurs bibliothèques tierces populaires telles que TBXML, TouchXML, KissXML, TinyXML et GDataXML. Comment un développeur peut-il choisir le meilleur analyseur XML pour son projet ?

J'ai récemment examiné les différentes options disponibles et j'ai fini par étendre l'échantillon XMLPerformance d'Apple pour essayer chacune des bibliothèques ci-dessus afin d'apprendre comment elles fonctionnent et de comparer leurs performances. J'ai pensé que je pourrais partager ce que j'ai appris jusqu'à présent avec d'autres personnes qui pourraient être à la recherche de la meilleure bibliothèque XML pour leur projet iPhone.

Dans ce tutoriel XML, nous allons comparer en détail les caractéristiques et les performances des bibliothèques iPhone les plus populaires, expliquer comment choisir entre elles et donner un exemple de projet montrant comment lire des données XML à l'aide de chacune de ces bibliothèques...

2voto

danylokostyshyn Points 366

Il existe une autre bonne bibliothèque d'analyse XML basée sur des blocs - RaptureXML ( github ) par ZaBlanc Il fournit une API Objective-C au-dessus de libxml2, et je vous recommande vivement de l'essayer.

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