首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSXMLParser在<?xml version="1.0"?>上抛出NSXMLParserErrorDomain #64

NSXMLParser在<?xml version="1.0"?>上抛出NSXMLParserErrorDomain #64
EN

Stack Overflow用户
提问于 2011-07-18 04:16:49
回答 2查看 658关注 0票数 1

如果NSXMLParser找到以下行,它将抛出NSXMLParserErrorDomain #64:

代码语言:javascript
复制
<?xml version="1.0"?>

无论我是initWithContentsOfUrl还是initWithData,都没有区别。xml是通过php5.3 apache系统发布的。如果省略此行,文档将不会出现错误。我们拥有服务器,所以我可以过滤掉这一行,但我更愿意修复解析器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-18 04:23:12

你确定这行上没有什么问题吗,比如字节顺序标记或其他隐藏字符?假设这是文档中的第一行,这是我能想到的唯一会导致该行错误的事情?

此外,添加encoding="UTF-8"可能会有所帮助,但同样,它必须是文档的第一行,并注意隐藏字符、输入错误的空格(nbsp-s而不是空格等),等等。

票数 1
EN

Stack Overflow用户

发布于 2012-01-11 05:56:37

发生这个问题是因为PHP服务器在<?XML标题前返回了一些垃圾和空格。以下是适用于我的简单解决方案,只需在解析之前更正传入的字符串:

代码语言:javascript
复制
NSRange range = [theXML rangeOfString:@"<?xml"];
theXML = [[theXML substringFromIndex:NSMaxRange(range)-5] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSData *xmldata = [theXML dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6726495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档