Parser un fichier XML sans connaitre aucun tag ni attribut à l'avance
Solveig
Membre
Bonsoir,
Je suis à la recherche d'un code permettant de parser un fichier XML sans connaitre au préalable aucun tag ni même attribut, cà d qui parse n'importe quel XML qu'on lui donne. Quelqu'un saurait ou je peux trouver ça? /rolleyes.gif' class='bbc_emoticon' alt='::)' />
Je suis à la recherche d'un code permettant de parser un fichier XML sans connaitre au préalable aucun tag ni même attribut, cà d qui parse n'importe quel XML qu'on lui donne. Quelqu'un saurait ou je peux trouver ça? /rolleyes.gif' class='bbc_emoticon' alt='::)' />
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Simplement avec NSXMLParser inclus dans iOS (documentation)
Tu télécharges ton XML et quand c'est fini tu créés une instance de NSXMLParser que tu init avec ton ton xml (qui sera sous forme de NSData. Tu set le delegate et tu start.
Je te laisse le soin de regarder les méthodes du délégué.
Ca fait des années que j'ai pas utilisé XML donc j'espère ne pas trop avoir dit de conneries.
Sinon tu peux te présenter ici /wink.png' class='bbc_emoticon' alt=';)' />
J'ai vu TBXML ou SMXMLDocument qui est plus light
https://github.com/TouchCode/TouchXML
Pratique car il gère XPath.
J'ai testé le SMXMLDocument, mais il ne trie pas tt seul les champs, il faut qu'on lui signale lesquels on attend /huh.gif' class='bbc_emoticon' alt='???' />
En fait, comme je sais pas encore coder en Objective C, on m'a demandé de trouver déjà tout fait un parser pr iPhone qui trie tte l'arborescence en tenant compte d'éventuels attributs qui peuvent être n'importe ou, pour pouvoir exploiter ensuite ces résultats, ça fait 4 jours que je suis dessus et je galère /sad.png' class='bbc_emoticon' alt=':(' />
Enfin normalement avec NSXMLParser tu devrais pouvoir t'en sortir.
Oui oui, j'ai potassé des cours d'objective C, et j'avais fais un petit peu de Java l'été dernier, du coup ça me parle, mais en parsing c'est tt à fait nouveau! C'est pour ça qu'on me demande de trouver le code déjà tout fait! Mais je crois que je vois pas trop comment stocker les données lues par le parser, et puis si on sait si il y a des attributs ça doit compliquer les choses! /huh.gif' class='bbc_emoticon' alt='???' />
Très rock'n roll comme démarche :-)
Bref, il me semble quand tes methodes delegate tu peux connaitre la current node. Tu peux partir sur un dictionnaire.
Les parseurs DOM pour iOS les plus connus sont TBXML (que perso je trouve mal foutu, enfin je trouve que l'API n'est pas pratique à utiliser), KissXML (qui reprend exactement la même API que NSXMLDocument pour MacOSX, donc ça permet de retrouver ses petits, et t'as toute la doc Apple pour NSXMLDocument sous OSX déjà de dispo en plus) que je préfère.
Exemple :
http://www.raywender...-iphone-project (un comparatif des API pour parser du XML sur iOS)
Dans ton . h
Dans ton . m
La console va t'afficher les différentes nodes de ton fichier XML. Tu peux donc les stocker.
Houlala tu t'y connais /huh.gif' class='bbc_emoticon' alt='???' />
Mais si je veux que le parser me renvoie un résultat sous forme de tableau, je dois choisir quoi? /smile.png' class='bbc_emoticon' alt=':)' />
Je teste ça /xd-laugh.gif' class='bbc_emoticon' alt='xd' />
Merci de vos conseils /wub.png' class='bbc_emoticon' alt=' ' />
Par contre, je ne supporte pas le parser natif d'iOS ...