NSXMLParser不会读取XML提要

时间:2011-12-17 19:03:06

标签: objective-c nsxmlparser

我试图解析这个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);
}

2 个答案:

答案 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);
    }
}];