2011-12-17 2 views
0

Im пытается разобрать этот XML-файл: http://www.ep.samico.dk/data2.xml Но NSXMLParser возвращает ошибку (ошибка домена 5) Я думаю, что его из-за структуры файла, потому что, когда им пытаются разобрать файл, как это: http://www.ep.samico.dk/data.xml он работает без проблем .. Может ли кто-нибудь сказать мне, как это сделать?NSXMLParser обыкновение прочитать фид XML

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

NSLog(@"Started parsing %@", elementName); 
} 

ответ

0

ваша ссылка ссылка содержит CDDATA теги ..

Я считаю, что вам нужно обрабатывать CDDATA отдельно. вы также должны реализовать этот делегат и обрабатывать данные там.

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock 
+0

Я думаю, вы видели неправильный файл. Я не уверен, если я ошибаюсь, но этот файл: http: //www.ep.samico.dk/data2.xml не содержит каких-либо CDATA .. я ошибаюсь? У этого файла у меня проблемы с разбором: http://www.ep.samico.dk/data2.xml – ebsp

0

Код ошибки 5 в NSXMLParserErrorDomain области ошибок является NSXMLParserPrematureDocumentEndError. Эта ошибка означает, что данные XML являются неполными, и обычно это происходит потому, что проанализированные данные пустые или nil.

Я думаю, вы должны проверить, как данные загружаются. Вероятно, в URL-связи будет ошибка.

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.ep.samico.dk/data2.xml"]]; 
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 

    if (error) 
     NSLog(@"URL error: %@", error); 
    else 
    { 
     NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; 
     parser.delegate = self; 
     if (! [parser parse]) 
      NSLog(@"Parser error: %@", parser.parserError); 
    } 
}]; 
+0

Он не возвращает ошибку, если я удаляю оператор if, он возвращает ошибку URL: (null) – ebsp

+0

И сделал синтаксический анализатор для синтаксического анализа данных XML или вы все еще получаете ошибку синтаксического анализа? –

+0

все еще получает ошибку домена (5) – ebsp

Смежные вопросы