Raar..., ik ben benieuwd wat je fout doet...
Doe de volgende dingen: - Maak een global variable
NSString *currentItem;
- Maak de parser en parse
Code:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
- Herken wanneer een nieuwe tag geopend wordt en bewaar de naam van de tag.
Code:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"item"]) {
questionParsing = [[NSMutableDictionary alloc] init];
}
currentItem = elementName;
}
- Controleer of de tag gelijk is aan de tag die je wilt hebben, zo ja, bewaar de inhoud.
Code:
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if ([currentItem isEqualToString:@"voorbeeld"]) {
// Bewaar de string
}
}
- Doe (indien nodig) iets wanneer de tag is gesloten.
Code:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"voorbeeld"]) {
// Doe iets
}
}
Hopelijk is dit duidelijk en werkt het goed. Deze code heb ik niet op de iPhone getest, maar wel op de mac. Daar werkt hij goed, op een foutmelding na die ik nog niet weg heb gekregen. Die foutmelding is: "Class 'FileFormats' does not implement the 'NSXMLParserDelegate' protocol". Als iemand weet hoe je die foutmelding weg krijgt hoor ik het graag.
|