XML解析雅虎天气预报

时间:2013-10-16 22:59:43

标签: ios xml parsing weather

我正在制作iphone的应用程序,我想在下面的xml中显示当前温度和天气图像:     http://xml.weather.yahoo.com/forecastrss/UKXX0085_c.xml

我能够对xml进行解析并读取描述选项卡数据。但是我怎样才能进一步解析它以获取温度和天气图像呢?

1 个答案:

答案 0 :(得分:0)

温度为yweather:condition。查看NSDictionary attributes返回的didStartElement

温度的度量单位为yweather:units(同样在attributes词典中)。

图片链接包含在description中。您应该使用HTML解析器,如How to Parse HTML on iOS中所述,或者(gasp)您可以使用正则表达式:

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<img\\s[\\s\\S]*?src\\s*?=\\s*?['\"](.*?)['\"][\\s\\S]*?>)+?"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSString *imageUrlString = nil;
NSTextCheckingResult *match = [regex firstMatchInString:htmlString options:0 range:NSMakeRange(0, [htmlString length])];
if (match)
    imageUrlString = [htmlString substringWithRange:[match rangeAtIndex:2]];