【问题标题】:iPhone: trouble parsing Google weather APIiPhone:无法解析 Google 天气 API
【发布时间】:2011-12-11 16:58:32
【问题描述】:

我正在通过 API 下载 Google 天气。我在解析时遇到问题。

使用 NSXMLParserDelegate,它找到了元素“forecast_conditions”,但我似乎无法提取它的内容。解析器似乎认为“高”和“低”等是独立的元素。

这是我尝试解析的元素:

<forecast_conditions><day_of_week data="Sun"/><low data="20"/><high data="38"/><icon data="/ig/images/weather/sunny.gif"/><condition data="Clear"/></forecast_conditions>

我很惊讶……

`- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

 NSLog(@"foundCharacters string: %@",string);

}`

也不返回任何东西。我以为这解析了一个元素的内容

帮助表示赞赏。

【问题讨论】:

标签: iphone xml-parsing google-weather-api


【解决方案1】:

原来解析器会自动创建“attributeDict”字典。循环遍历elementNames,只需要调用[attributeDict objectForKey:@"data"]。下面的例子。

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

// current conditions

if ([elementName isEqualToString:@"current_conditions"]) {

     currentConditions = [[NSMutableString alloc] init];
     temp_f = [[NSMutableString alloc] init];
     temp_c = [[NSMutableString alloc] init];
     humidity = [[NSMutableString alloc] init];
     currentIcon = [[NSMutableString alloc] init];
     wind_condition = [[NSMutableString alloc] init];

}

if ([elementName isEqualToString:@"condition"]) {
    [currentConditions appendString:[attributeDict objectForKey:@"data"]];
}
if ([elementName isEqualToString:@"temp_f"]) {
    [temp_f appendString:[attributeDict objectForKey:@"data"]];
}
if ([elementName isEqualToString:@"temp_c"]) {
    [temp_c appendString:[attributeDict objectForKey:@"data"]];
}
if ([elementName isEqualToString:@"humidity"]) {
    [humidity appendString:[attributeDict objectForKey:@"data"]];
}
if ([elementName isEqualToString:@"currentIcon"]) {
    [currentIcon appendString:[attributeDict objectForKey:@"data"]];
}
if ([elementName isEqualToString:@"wind_condition"]) {
    [wind_condition appendString:[attributeDict objectForKey:@"data"]];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2020-01-10
    • 2011-05-28
    • 2011-10-02
    • 1970-01-01
    • 2017-01-12
    • 2020-08-15
    相关资源
    最近更新 更多