我试图解析这个XML文件:http://www.ep.samico.dk/data2.xml 但NSXMLParser返回错误(域错误5) 我认为这是因为文件的结构,因为当我试图解析这样的文件时:http://www.ep.samico.dk/data.xml它没有问题。有谁能告诉我如何做到与众不同?
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict {
NSLog(@"Started parsing %@", elementName);
}
答案 0 :(得分:0)
您的参考链接包含CDATA代码..
我相信你需要单独处理CDATA。你也应该实现这个委托并处理那里的数据。
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
答案 1 :(得分: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);
}
}];