您的位置:首页 > 其它

gdataxml解析报错,而且报错还是离谱,请看这个,,,

2014-03-06 17:32 225 查看
报错像下面这样的:



遇到这个错误又看到这个帖子的朋友们,是不是很开心啊,下面来给出解决办法:

我是在使用百度RSS的时候,通过手机IOS二进制下载数据存入NSData中,然后解析就是报错。

解决代码如下:

1.先获取到网络上面需要的代码,然后想办法进行转码,转换成中文格式(这个不同网站有区别,解码方式不唯一,下面的这个发那个发对很多网站或许都是适用的):

NSStringEncoding strEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *str = [[NSString alloc] initWithData:data encoding:strEncoding];


这样就可以获取到网站上面需要的数据了,接下来就是关键,将获取到的字符串进行截取,截取的是xml文件的头,如下所示:

<?xml version="1.0" encoding="gb2312"?>
将获取到的xml文件字符串截取掉上面的部分,如下:

str= [str substringFromIndex:39];


GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithXMLString:str options:0 error:nil];
GDataXMLElement *rootElement = [xmlDoc rootElement];
NSArray *array = [rootElement elementsForName:@"channel"];


截取掉39个字符,正好截取完毕,将剩下的字符串痛快的进行gdataxml解析吧,真相终于大白于天下,
(我也不知道为什么这样就好了,希望理解原理的人评论回复相告,还有我十分不理解的就是:一般情况下不这样截取字符串也是可以顺利读取的,可是就是不知道为什么有些时候就不行了,上面的办法也是折中,希望有更好的),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: