我有一个有趣的问题。
我有一个 iPad 应用程序,它必须从 Web 解析一些 XML 数据,它在 5.0 模拟器和设备中都可以正常工作,但在 iOS 4.3 模拟器(实际上我没有任何可用的 4.3 设备)上它不会解析并且[NSXMLParser parse]
方法返回 NO
我已经尝试先下载字符串然后将其转换为 NSData,以及直接下载 NSData 并使用下载的 NSData 初始化解析器。
这是我的代码
-(void)parseWithURLString:(NSString *)urlString{
NSURL *url = [NSURL URLWithString:urlString];
if (url != nil) {
self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[[self parser] setDelegate:self];
if([[self parser] parse]){
NSLog(@"WOOHOO!");
[TestFlight passCheckpoint:@"XML has been parsed"];
}
}
已检查 urlString 是正确的。
最佳答案
记录 NSXMLParser
的 parseError
属性。这应该会让您知道您的问题到底是什么。
-(void)parseWithURLString:(NSString *)urlString{
NSURL *url = [NSURL URLWithString:urlString];
if (url != nil) {
self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[[self parser] setDelegate:self];
if([[self parser] parse]){
NSLog(@"Parser completed.");
}
else {
NSLog(@"Parser failed. Error: %@",[self.parser parseError]);
}
}
或者,您可以实现以下协议(protocol)并记录解析期间发生的错误:
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
关于objective-c - NSXMLParser 不会在 iOS 4.3 中解析,但在 5.0 中会解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9144542/