iPhone中的xml解析问题

时间:2010-01-11 10:42:58

标签: iphone xml parsing

我有中文的xml feed,NSXLParsers无法解析。它在解析时给出错误31。

错误31由于文档编码未知而发生。

我尝试使用UTF-8和ascii编码来转换通过

呈现的字符串
[NSString stringwithContentsOfURL:@"http://news.baidu.com/n?cmd=4&class=finannews&tn=rss"]

到相应的格式。

任何机构都可以解释如何解析用其他语言编写的XML提要。

提前完成

3 个答案:

答案 0 :(得分:2)

尝试使用

进行调试
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
    NSString * errorString = [NSString stringWithFormat:@"Unable to download story feed from web site (Error code %i )", [parseError code]];
    NSLog(@"error parsing XML: %@", errorString);

    UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [errorAlert show];
}

有助于找出问题是使用xml还是编码方法

答案 1 :(得分:1)

答案是Feed的第一行

<?xml version="1.0" encoding="gb2312"?>

然后阅读gb2312

答案 2 :(得分:1)

由于文件是在GB2312中编码的,因此您应该使用

提供编码
[NSString stringWithContentsOfURL:@"http://..."
                         encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_2312_80)
                            error:NULL];