使用NSXMLParser从HTTPS URL解析XML?

Pla*_*mer 4 xml cocoa parsing cocoa-touch objective-c

我正在尝试直接从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];
Run Code Online (Sandbox Code Playgroud)

我有解析器的以下委托方法:

- (void) parser:(NSXMLParser *)parser 
didStartElement:(NSString *)elementName 
namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qualifiedName 
attributes:(NSDictionary *)attributeDict
{
    NSLog(@"Started parsing %@", elementName);
}
Run Code Online (Sandbox Code Playgroud)

这似乎适用于HTTP URL,但没有显示HTTPS URL的结果.

我怎么能解决这个问题?

Nat*_*ger 8

  1. initWithContentsOfURL:...方法都不允许您从https服务器回答身份验证消息.请查看NSURLConnectionNSURLDownload,它们具有可帮助您处理身份验证的委托消息.

  2. 要了解有关使用URL与服务器通信的更多信息,请阅读URL加载系统简介.

  3. 至于使用XML解析器解析HTML,它只能可靠地使用XHTML.因此,如果您正在创建和解析自己的XHTML文件,这些文件在大多数情况下都可以使用.但是,如果要从Internet加载任何HTML文件,则XML解析器通常无法解析该文件.您可能想要查看WebKit.