下面的代码打印以下消息:Error Domain=NSXMLParserErrorDomain Code=111 "The operation couldn’t be completed. (NSXMLParserErrorDomain error 111.)
mainUrl = [NSURL URLWithString:@"http://www.carris.pt/pt/carreiras"];
NSString *urlContents = [NSString stringWithContentsOfURL:mainUrl encoding:NSISOLatin1StringEncoding error:nil];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[urlContents dataUsingEncoding:NSISOLatin1StringEncoding]];
[xmlParser parse];
NSLog(@"%@", [xmlParser parserError]);
有人有线索吗?从代码中可以看出,html 采用 ISO-8859-1 编码。
更新:我将 url 提交到 html 验证器站点:http://validator.w3.org/结果发现了 30 多个错误。我认为这与错误有关。但我可以用 HPPLE 很好地解析 html。
似乎还没有人偶然发现正确答案,所以就在这里。
In NSXMLParser 错误文档, 它说:
以下错误代码由 NSXMLParser 定义。对于此处未列出的错误代码,请参见 头文件。
这个列表中没有提到数字 111,所以我们去/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2/libxml/xmlerror.h
,并求出值:
XML_ERR_USER_STOP, /* 111 */
没有太多的文档XML_ERR_USER_STOP
在 libxml2 中,但是来自读取变更集,当解析器看到意外的 EOF 时,看起来会发生快速失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)