NSXMLParser parser: didStartElement не запускается при разборе xml - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь проанализировать xml-файл и не получить ошибок, но при попытке прочитать его, parser: didStartElement событие не инициируется. Что я делаю не так? Спасибо за помощь.

- (void)viewDidLoad
        {
            [super viewDidLoad];

            // xml connect
            NSURL *url = [[NSURL alloc] initWithString:@"http://www.test.com/list.xml"];
            NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];

            //Start parsing the XML file.
            BOOL success = [xmlParser parse];

            if(success)
                NSLog(@"No Errors");
            else
                NSLog(@"Error!");
        }

        // reading xml...

        - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
          namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
            attributes:(NSDictionary *)attributeDict {

            if([elementName isEqualToString:@"main"]) {
                //Initialize the array.
                apps = [[NSMutableArray alloc] init];
            }
            else if([elementName isEqualToString:@"prog"]) {

                //Extract the attribute here.
                idUsuari = [attributeDict objectForKey:@"Id"];

                NSLog(@"ID: %@", idUser);
            }
        }

Ответы [ 3 ]

5 голосов
/ 25 января 2012

Вы не установили свой контроллер представления в качестве делегата анализатора XML:

[xmlParser setDelegate:self];

После того, как вы выделите / init. Без этого парсер не знает, кому отправлять сообщения делегатов.

0 голосов
/ 14 февраля 2016

Пожалуйста, добавьте это в Info.plist после повторного запуска

0 голосов
/ 25 января 2012

объявляют, что ваш текущий класс соответствует NSXMLParserDelegate, тогда

[xmlParser setDelegate:self];

перед синтаксическим анализом, чтобы синтаксический анализатор мог вызвать реализованные вами методы делегата.

например

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
      namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
        attributes:(NSDictionary *)attributeDict
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...