首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSXMLParserDelegate解析器:找到rogue :返回流氓数据

NSXMLParserDelegate解析器:找到rogue :返回流氓数据
EN

Stack Overflow用户
提问于 2012-12-23 01:48:12
回答 1查看 303关注 0票数 1

这真是令人费解。我有一个读取包含大量CDATA节的文档的NSXMLParser。但我发现在程序的某些运行中,我用这种方法得到的数据是错误的。这并不总是发生,但当它发生时,通常在文档的其他随机部分中,在它应该实际阅读的部分之后有大约100个字符。

简而言之,我有以下几点:

代码语言:javascript
复制
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
    NSString *queryFragment = [NSString stringWithUTF8String:[CDATABlock bytes]];
    ....
}

令人难以置信的是,当阅读同一文档的同一部分时,有时变量queryFragment会得到我所期望的结果,但有时它的结尾会有随机的垃圾。我曾经见过它读过CDATA块的末尾并获得原始的XML!

我已经调试了两天了。任何想法都会受到深深的赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-23 01:55:26

这是错误的,因为您需要一个以0结尾的带有stringWithUTF8String:的utf-8字符串

通过,原始字节不是0终止

你必须使用数据:

代码语言:javascript
复制
NSString *queryFragment = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14005113

复制
相关文章

相似问题

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