2010-04-05 10 views
0

Im construire une nouvelle version d'une application iPhone et je me demande si je devrais revoir comment mon application communique avec le serveur. Mon client iPhone envoie et reçoit des requêtes XML sur HTTP.Traitement XML sur iPhone: Quelle est la meilleure option?

Pour envoyer l'information j'utilise le framework ASIHTTPRequest. Je "construit" manuellement la requête XML en ajoutant des chaînes.

Pour analyser la réponse Im en utilisant un NSXMLParser.

Ma question est si j'ai de meilleures options à A) Créer une chaîne XML à partir d'un objet de mémoire. B) Créez un objet mémoire à partir de la chaîne XML.

Y at-il quelque chose comme JAXB pour marshaler XML en objet?

Merci Gonso

Répondre

1

Je ne suis pas tout à fait sûr que cela fonctionnerait pour vous, mais vous pouvez essayer d'utiliser JSON avec un analyseur de JSON tels que SBJSON, qui va créer un objet en mémoire pour vous en fonction les données. Pour obtenir JSON à partir d'un flux XML, je crois que vous pourriez envoyer la requête pour XML à YQL (http://developer.yahoo.com/yql) qui pourra alors traduire le flux en JSON avant de le renvoyer.

+0

Merci pour la réponse. SBJSON semble pouvoir résoudre les problèmes, mais je ne peux pas passer à JSON car d'autres clients parlent au même serveur. – gonso

1

XML Parsing

Je ne peux pas penser à quelque chose qui ressemble pour les balises et les choses directement dans parse objets (pour XML), mais un analyseur ligne par ligne type de fait le travail. Il nécessite beaucoup de code pour utiliser NSXMLParser, il suffit donc de configurer une classe externe pour le faire. En général, j'ai utilisé un modèle dans lequel il commence un élément parent, obtient les données à partir d'éléments de détail, puis lorsque l'élément parent se ferme, l'analyseur prend la données temporaires, remplit un objet avec lui et ajoute l'objet à un tableau. Il répète ensuite le processus. Je ne pense pas que mon chemin serait très efficace si vous aviez plus de 3 niveaux de XML (root ==> tags parents ==> tags de détails au sein des parents), mais cela fonctionne pour moi. Si vous avez un XML complexe, je trouverais un moyen de basculer sur JSON et d'utiliser SBJSON comme suggéré par Matt.M. Création XML

Si je créions XML, je voudrais simplement utiliser un tas de boucles for et une grande NSMutableString.

+0

Merci pour la réponse. Im utilisant déjà les analyseurs, mais je cherchais une solution plus OO-like. – gonso

Questions connexes