2011-12-17 60 views
0

我试着去解析这个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 2011-12-17 19:22:56

0

NSXMLParserErrorDomain错误域中的错误代码5是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 2011-12-17 19:43:20

+0

解析器是否成功解析XML数据还是仍然收到解析错误? – 2011-12-17 19:51:51

+0

仍然出现域错误(5) – ebsp 2011-12-17 19:57:45