我正在尝试直接从HTTPS URL解析XML,如下所示:
NSString *const URL = @"https://some/HTTPS/url"; NSURL* url = [NSURL URLWithString:URL]; NSXMLParser* parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; [parser setDelegate:self]; [parser parse];
我有解析器的以下委托方法:
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { NSLog(@"Started parsing %@", elementName); }
这似乎适用于HTTP URL,但没有显示HTTPS URL的结果.
我怎么能解决这个问题?
initWithContentsOfURL:...方法都不允许您从https服务器回答身份验证消息.请查看NSURLConnection和NSURLDownload,它们具有可帮助您处理身份验证的委托消息.
要了解有关使用URL与服务器通信的更多信息,请阅读URL加载系统简介.
至于使用XML解析器解析HTML,它只能可靠地使用XHTML.因此,如果您正在创建和解析自己的XHTML文件,这些文件在大多数情况下都可以使用.但是,如果要从Internet加载任何HTML文件,则XML解析器通常无法解析该文件.您可能想要查看WebKit.