A molti di voi sarà sicuramente capitato di dover parsare file XML all’interno delle proprie applicazioni iPhone o iPad. Come saprete Apple ci mette a disposizione un framework per realizzare un parser XML, ma certamente è molto complicato e lungo da implementare. Così hanno iniziato a comparire in rete alcuni parser di terzi molto piu semplici da utilizzare e al tempo stesso molto completi. Oggi vi voglio segnalare TBXML un semplice, ma potente, parser XML.
Devo dire che per esperienza personale mi sono sempre trovato bene con questo parser, funziona in modo pressochè perfetto, anche se non so dirvi, in tutta onestà, se questo sia il migliore o meno, dato che è l’unico che ho provato. Essendomi trovato fin da subito bene la mia ricerca è terminata praticamente alla partenza. Magari via commento potete postare la vostra esperienza con questo o altri parser a me sconosciuti.
TBXML, oltre ad essere un valido strumento, fornisce anche un’ottima documentazione che ci aiuterà ad integrarlo nelle nostre applicazioni e ci insegnerà ad interagire con contenuti XML provenienti da diverse sorgenti.
Breve panoramica a TBXML
Già che siamo qui a parlarne facciamo una breve panoramica di questo parser, per la guida completa vi rimando invece all’apposita sezione guide presente sul sito ufficiale.
Iniziamo a vedere il caricamento del file XML, come anticipato poco fa, potremo caricare dati da diverse fonti (file, stringhe contenenti XML, NSData, URL):
//caricamento da file
TBXML * tbxml = [[TBXML tbxmlWithXMLFile:@"books.xml"] retain];
TBXML * tbxml = [[TBXML tbxmlWithXMLFile:@"books" fileExtension:@"xml"] retain];
//caricamento da stringa contenente XML
TBXML * tbxml = [[TBXML tbxmlWithXMLString:@" "] retain];
//caricamento da NSData
TBXML * tbxml = [[TBXML tbxmlWithXMLData:myXMLData] retain];
//caricamento da URL
TBXML * tbxml = [[TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www.w3schools.com/XML/note.xml"]] retain];
Per estrarre elementi e attributi dai vari tag XML, invece, dovremo scrivere:
//estraiamo il contenuto del tag author presente sulla root del nostro file xml
[TBXML childElementNamed:@"author" parentElement:root]
//estraiamo l'attributo nome dal nostro author
name = [TBXML valueOfAttributeNamed:@"name" forElement:author];
Come vedete da queste poche righe di codice tutto molto semplice. Ovviamente questo articolo vuole essere una semplice segnalazione corredata da una piccola panoramica all’uso di TBXML che, come detto, a parer mio è un ottimo parser XML. Spero di riuscire presto a realizzare un tutorial completo per spiegarvi tutte le potenzialità di questo interessante strumento.
Ciao a presto ragazzi
Andrea Cappellotto
4 Responses to “TBXML: un valido parser XML alternativo a NSXML di Apple”
7 Giugno 2011
Gianlucaottimo! sarebbe ideale un tutorial completo che faccia anche vedere come caricare anche immagini da URL presente in file XML
7 Giugno 2011
Andrea CappellottoCiao! appena possibile vedo di realizzarlo… per scaricare le immagini ti consiglio di farti mettere l’URL nell’xml e usare uno scaricamento asincrono
7 Giugno 2011
ClaudioUso costantemente TBXML e mi trovo benissimo!!
Per quanto riguarda le immagini se hai necessità di visualizzarle in modalità offline , puoi convertire l’immagine in base64 inserire la stringa di conversione nell’xml e parsarla grazie al metodo “dataWithBase64EncodedString” incluso in TBXML!!
7 Giugno 2011
LorenzoFantasticoooo !!! Lo aspettavo un tutorial completo di TBXML. Mi servirà per la mia apps 😀 Siete dei grandi !!!