(opens new window)
We will parse the highlighted tag data through NSXMLParser
NSXMLParser
We have declared few properties as follows
@property(nonatomic, strong)NSMutableArray *results; @property(nonatomic, strong)NSMutableString *parsedString; @property(nonatomic, strong)NSXMLParser *xmlParser; //Fetch xml data NSURLSession *session=[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; NSURLSessionDataTask *task=[session dataTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:YOUR_XMLURL]] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { self.xmlParser=[[NSXMLParser alloc] initWithData:data]; self.xmlParser.delegate=self; if([self.xmlParser parse]){ //If parsing completed successfully NSLog(@"%@",self.results); } }]; [task resume];
Then we define the NSXMLParserDelegate
NSXMLParserDelegate
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary<NSString *, NSString *> *)attributeDict{ if([elementName isEqualToString:@"GeocodeResponse"]){ self.results=[[NSMutableArray alloc] init]; } if([elementName isEqualToString:@"formatted_address"]){ self.parsedString=[[NSMutableString alloc] init]; } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ if(self.parsedString){ [self.parsedString appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; } } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName{ if([elementName isEqualToString:@"formatted_address"]){ [self.results addObject:self.parsedString]; self.parsedString=nil; } }
Read Articlehttps://develop.horje.com/learn/1434/reference