Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSXMLParser在安培上阻塞&;_Iphone_Objective C_Cocoa_Nsxmlparser - Fatal编程技术网

Iphone NSXMLParser在安培上阻塞&;

Iphone NSXMLParser在安培上阻塞&;,iphone,objective-c,cocoa,nsxmlparser,Iphone,Objective C,Cocoa,Nsxmlparser,我正在用NSXMLParser解析一些HTML,每当遇到符号时,它就会遇到解析器错误。我可以在解析它之前过滤掉符号,但我更愿意解析其中的所有内容 它给了我错误68,NSXMLParserNameRequestError:名称是必需的 我最好的猜测是这是一个角色集问题。我对角色集的世界有点模糊,所以我想我的无知是在咬我的屁股。 源HTML使用字符集iso-8859-1,因此我使用以下代码初始化解析器: NSString *dataString = [[[NSString alloc] initWi

我正在用NSXMLParser解析一些HTML,每当遇到符号时,它就会遇到解析器错误。我可以在解析它之前过滤掉符号,但我更愿意解析其中的所有内容

它给了我错误68,NSXMLParserNameRequestError:名称是必需的

我最好的猜测是这是一个角色集问题。我对角色集的世界有点模糊,所以我想我的无知是在咬我的屁股。 源HTML使用字符集iso-8859-1,因此我使用以下代码初始化解析器:

NSString *dataString = [[[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding] autorelease];
NSData *dataEncoded = [[dataString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES] autorelease];
NSXMLParser *theParser = [[NSXMLParser alloc] initWithData:dataEncoded];

有什么想法吗?

你确定你有有效的XML吗?您需要在原始XML文件中使用特殊字符,如&转义符,您应该看到
&

到其他海报:当然XML是无效的。。。它是HTML

您可能不应该尝试将NSXMLParser用于HTML,而是


若要更详细地了解原因,请查看。

通过
NSString对数据进行编码对我来说很有效,无论如何,您正在自动删除一个不是自己分配的对象(dataUsingEncoding),因此它会崩溃,解决方案是:

NSString *dataString = [[NSString alloc] initWithData:data
                             encoding:NSISOLatin1StringEncoding];

NSData *dataEncoded = [dataString dataUsingEncoding:NSUTF8StringEncoding 
                                     allowLossyConversion:YES];

[dataString release];

NSXMLParser *theParser = [[NSXMLParser alloc] initWithData:dataEncoded];

您正在使用XML解析器解析HTML?这是怎么回事?(除非它是格式良好的XHTML,并且不使用HTML实体集。)不管怎样,一个空的符号在HTML和XML中都是无效的,所以你需要为现实世界中被破坏的HTML寻找一个解析器,这比XML解析困难得多。好吧,那么。这项工作用错了工具?谢谢你的提示。我可能不得不这么做。关于HTML的要点很好,NSXMLParser部分把我甩了。libxml2似乎是一个非常合理的选择。请参阅前一篇SO文章:请编辑您的答案并格式化代码(原样无法阅读)