NSString *weatherRequestUrlStr = [NSString stringWithFormat:
@"http://www.google.com/ig/api?hl=zh-cn&weather=%@",
[@"上海" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"request = %@", weatherRequestUrlStr);
NSData *weatherReponseData = [NSData dataWithContentsOfURL:[NSURL URLWithString:weatherRequestUrlStr]];
//NSLog(@"data = %@", weatherReponseData);
//转换数据的格式,转为utf-8的格式以显示中文(汉字占3个字符)
// CFStringRef gb2312Str = CFStringCreateWithBytes(NULL,
// [weatherReponseData bytes],
// [weatherReponseData length],
// kCFStringEncodingGB_18030_2000, FALSE);
unsigned long encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
//kCFStringEncodingGB_18030_2000);
NSString *str = [[NSString alloc]initWithData:weatherReponseData encoding:encode];
NSLog(@"str:%@",str);
CMarkup xm;
int isLoad = xm.SetDoc([str UTF8String]);
if (!isLoad) {
return nil;
}
if (xm.FindElem("xml_api_reply"))
{
xm.IntoElem();
xm.IntoElem();
if(xm.FindElem("forecast_information"))
{
xm.IntoElem();
if(xm.FindElem("postal_code"))
{ //xm.IntoElem();
NSString *result = [NSString stringWithUTF8String:xm.GetAttrib("data").c_str()];
NSLog(@"result:%@",result);
}
}
}
}
xml 解析 的对象应该 是UTF-8
@"http://www.google.com/ig/api?hl=zh-cn&weather=%@",
[@"上海" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"request = %@", weatherRequestUrlStr);
NSData *weatherReponseData = [NSData dataWithContentsOfURL:[NSURL URLWithString:weatherRequestUrlStr]];
//NSLog(@"data = %@", weatherReponseData);
//转换数据的格式,转为utf-8的格式以显示中文(汉字占3个字符)
// CFStringRef gb2312Str = CFStringCreateWithBytes(NULL,
// [weatherReponseData bytes],
// [weatherReponseData length],
// kCFStringEncodingGB_18030_2000, FALSE);
unsigned long encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
//kCFStringEncodingGB_18030_2000);
NSString *str = [[NSString alloc]initWithData:weatherReponseData encoding:encode];
NSLog(@"str:%@",str);
CMarkup xm;
int isLoad = xm.SetDoc([str UTF8String]);
if (!isLoad) {
return nil;
}
if (xm.FindElem("xml_api_reply"))
{
xm.IntoElem();
if(xm.FindElem("weather"))
xm.IntoElem();
if(xm.FindElem("forecast_information"))
{
xm.IntoElem();
if(xm.FindElem("postal_code"))
{ //xm.IntoElem();
NSString *result = [NSString stringWithUTF8String:xm.GetAttrib("data").c_str()];
NSLog(@"result:%@",result);
}
}
}
}
xml 解析 的对象应该 是UTF-8