Как читать содержимое тега XML - PullRequest
0 голосов
/ 01 июля 2010

Как читать содержимое этого XML?

<Locations>
<Location>4</Location>
</Locations>

Я могу разобрать, и это работает, но я не могу получить доступ к значению Location (4) Я использую:

ZoneCheck *azone;
NSString *url1 = [NSString stringWithFormat:@"%@", azone.location];

1 Ответ

0 голосов
/ 19 июня 2012

Я уже опубликовал ответ, перейдите по следующей ссылке '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 будет иметь все идентификаторы местоположения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...