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

报错像下面这样的:

gdataxml解析报错,而且报错还是离谱,请看这个,,,_第1张图片

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

我是在使用百度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解析吧,真相终于大白于天下,

(我也不知道为什么这样就好了,希望理解原理的人评论回复相告,还有我十分不理解的就是:一般情况下不这样截取字符串也是可以顺利读取的,可是就是不知道为什么有些时候就不行了,上面的办法也是折中,希望有更好的),


你可能感兴趣的:(ios,GDataXML,解析报错,xml解析报错)