Я уже опубликовал ответ, перейдите по следующей ссылке 'https://stackoverflow.com/questions/10877374/how-to-parse-the-attributes-like-in-this-xml-file-through-xml-parser/10877758#10877758'
Сначала возьмите переменную bool. а затем напишите следующий код. возможно, это поможет вам, я проделал соответствующую работу несколько дней назад.
Первый .h файл
@interface EventsViewController : UIViewController <NSXMLParserDelegate>
{
NSMutableArray *_locationArray;
BOOL isLocation;
}
Тогда в .m файле вы должны написать это.
// В ViewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad];
_locationArray = [[NSMutableArray alloc] init];
NSURL * fileURL = [NSURL fileURLWithPath:xmlString];
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:fileURL];
[parser setDelegate:self];
[parser parse];
}
// Теперь в XML-методах делегирования анализатора
прагма - метод делегата NSXMLParser
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"Locations"]) {
isLocation = YES;
}
else if ([elementName isEqualToString:@"Location"] && isLocation){
NSLog(@"Location is: %@ ",elementName);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if ([elementName isEqualToString:@"Location"] && isLocation){
NSLog(@"Location is: %@ ",string);
[locationArray addObject:string];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"Location"]) {
isLocation=NO;
}
}
Примечание. В конце _locationArray будет иметь все идентификаторы местоположения.