2012-07-25 209 views
1

我想在我的項目中使用谷歌天氣API。 here我很久沒有掙扎了。獲取當前溫度。城市,溼度,星期幾等如何從XML獲取值

我成功地打了網址。但我不知道我在findCharacter方法中做了什麼來獲取值。

感謝

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ 
    if ([elementname isEqualToString:@"weather"]) 
    { 
      currentTweet = [Tweet alloc]; 
    } 
} 

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{ 
    if ([elementname isEqualToString:@"city"]) 
    { 

    } 
} 

回答

1

請檢查代碼:

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    if ([elementname isEqualToString:@"weather"]) 
    { 
      currentTweet = [Tweet alloc]; 
    } 
    else if ([elementname isEqualToString:@"city"]) 
    { 
      currentTweet.city = [attributeDict valueForKey:@"city"] 
    } 
} 

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if ([elementname isEqualToString:@"weather"]) 
    { 
      NSLog("Current City: %@",currentTweet.city); 
    } 
} 

對於這種類型的XML,你不想使用從NSXMLPareser參考指南,瞭解有關foundCharactersparser:foundCharacters:

報價方法:

由解析器對象發送,爲其委託提供一個字符串 ,表示當前元素的全部或部分字符。

解析器對象可能會向代理髮送若干個 解析器:foundCharacters:消息來報告 元素的字符。因爲字符串可能只是當前元素的總字符內容的一部分,所以您應該將其附加到字符當前的 堆積中,直到元素更改。

有關詳細信息:NSXML Parser ReferenceWorking of parserfoundCharacters use