2010-02-02 4 views
0

Dans une classe que j'écris, je vais probablement devoir utiliser deux fois NSXMLParser pour analyser deux xml différents, et je me demande quelle approche dois-je utiliser? - libère l'analyseur après avoir fini d'analyser l'URL et de réinitialiser quand besoin d'analyser la deuxième URL? - utilise une classe différente comme délégué pour l'analyse d'autres URL? - ou autre chose?Réutilisation de NSXMLParser

grâce Peter

Répondre

1

Dans mon expérience personnelle, je l'ai souvent dû analyser plusieurs différentes réponses XML REST et pour chacun d'eux, je hérite d'une classe de base et de créer une classe par requête/réponse/analyser. À mon humble avis, bien que ce n'est pas propre code, je trouve honnêtement qu'il est impossible d'écrire propre code lorsqu'il s'agit d'un analyseur de style SAX.

Mon conseil serait des appels séparés et peut-être des classes séparées si vous ne voulez pas un tas de if-else dans votre code. Maintenant, si le XML est très similaire, cela pourrait être une histoire différente ...

+0

Cela signifie donc que l'affectation d'un nouveau délégué à un second analyseur est pratiquement impossible. C'est suffisant. Merci pour l'aide! – dusker

0

Dans le passé, je l'ai souvent fait des cours pour analyser chaque type de réponse que je m'y attendais à voir, vous pouvez réutiliser un NSXMLParser, mais je n'ai vraiment pas vu un besoin de. En fonction de vos besoins, vous pouvez simplement lire les réponses dans des NSDictionaries imbriquées, puis traiter de l'accès aux éléments dont vous avez besoin directement à partir des dictionnaires.