如果NSXMLParser找到以下行,它将抛出NSXMLParserErrorDomain #64:
<?xml version="1.0"?>无论我是initWithContentsOfUrl还是initWithData,都没有区别。xml是通过php5.3 apache系统发布的。如果省略此行,文档将不会出现错误。我们拥有服务器,所以我可以过滤掉这一行,但我更愿意修复解析器。
发布于 2011-07-18 04:23:12
你确定这行上没有什么问题吗,比如字节顺序标记或其他隐藏字符?假设这是文档中的第一行,这是我能想到的唯一会导致该行错误的事情?
此外,添加encoding="UTF-8"可能会有所帮助,但同样,它必须是文档的第一行,并注意隐藏字符、输入错误的空格(nbsp-s而不是空格等),等等。
发布于 2012-01-11 05:56:37
发生这个问题是因为PHP服务器在<?XML标题前返回了一些垃圾和空格。以下是适用于我的简单解决方案,只需在解析之前更正传入的字符串:
NSRange range = [theXML rangeOfString:@"<?xml"];
theXML = [[theXML substringFromIndex:NSMaxRange(range)-5] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSData *xmldata = [theXML dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];https://stackoverflow.com/questions/6726495
复制相似问题