Ecco come funziona:
C'è una classe chiamata NSXMLParser. È usato per analizzare i file XML. Tuttavia, NSXMLParser è stupido. Tutto quello che sa fare è analizzare XML, ma non sa cosa dovrebbe fare con le informazioni che trova.
Inserire un delegato. Un delegato è come una bambinaia. Dato che XMLParser non ha idea di cosa fare con le informazioni che trova, va e chiede al suo delegato su ogni cosa: "Ehi, ho iniziato a analizzare un documento! Devo fare qualcosa?" "Ehi, ho trovato un CDATA! Che cosa dovrei fare con questo!" "Ehi, ho trovato un altro tag!" "Ehi, ho trovato un tag di chiusura!", E così via. Tutti questi "Hey!" le istruzioni sono metodi delegati o, in altre parole, sono metodi facoltativi che un oggetto delegato può scegliere di implementare. Di solito (ma non sempre), l'oggetto che crea NSXMLParser è anche il delegato, ma non deve essere il caso.
così si potrebbe avere qualcosa di simile:
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];
Poi in quello stesso oggetto (auto), si potrebbe avere alcuni di questi metodi:
- (void)parserDidStartDocument:(NSXMLParser *)parser {
//the parser started this document. what are you going to do?
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
//the parser found an XML tag and is giving you some information about it
//what are you going to do?
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
//the parser found some characters inbetween an opening and closing tag
//what are you going to do?
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
//the parser finished. what are you going to do?
}
ci sono un sacco di questi metodi elencati nella documentazione. Basta andare al riferimento alla classe NSXMLParser e sono tutti elencati nella sezione "Metodi delegati". Una volta capito, NSXMLParser è abbastanza facile da usare. È un SAX Parser, il che significa che è un parser basato sugli eventi. Trova cose e te ne parla.
fonte
2009-07-07 03:01:13
cosa non ha senso nella documentazione online? – hhafez
Non sono sicuro di cosa dovrei ignorare per farlo funzionare. – PF1
Non c'è niente da escludere. Si crea un oggetto separato e lo si nomina delegato del parser. In quell'oggetto, rispondi a determinati messaggi (alcuni richiesti, alcuni facoltativi) che ti dicono cosa ha trovato il parser. –