2013-10-13 116 views
0

好的,所以這裏是我在我的應用程序。 我有一些代碼連接到遠程服務器,並抓取一些XML數據,並將其形成一個字符串。這是下面的代碼:從WebServer解析XML字符串

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"GET"]; 
NSString *accept = [NSString stringWithFormat:@"application/xml"]; 
[request addValue:accept forHTTPHeaderField: @"Accept"]; 
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString* responseString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding]; 
NSLog(@"%@",responseString); 

它返回

enter image description here

這正是我想要的信息。我的問題是,我如何從金括號和我的應用程序中獲得雙重價值。

非常感謝!

+0

您是否嘗試過搜索*任何內容?*它似乎並不如此。另外,這與Xcode無關。 – 2013-10-13 04:57:47

回答

0

有很多關於如何使用NSXMLParser的教程。例如,ray wenderlichherehere

+0

更新的代碼。仍然有問題。返回null! http://cl.ly/image/2q2v1j2P0K0k – user2873239

0

有很多XML解析選項可用 - 從libxml2到NSXMLParser以及一系列開源項目。

我最喜歡的XML解析器之一是RaptureXML,它可以通過CocoaPods進行安裝。

我喜歡創造上RXMLElement類別來分析如下:

- (PFCurrentConditions*)asCurrentCondition 
{  

    NSString* summary = [[self child:@"weatherDesc"] text]; 
    PFTemperature* temp = [PFTemperature temperatureWithFahrenheitString:[[self child:@"temp_F"] text]]; 
    NSString* humidity = [[self child:@"humidity"] text]; 
    NSString* wind = 
      [NSString stringWithFormat:@"Wind: %@ km %@", [[self child:@"windspeedKmph"] text], [[self child:@"winddir16Point"] text]]; 
    NSString* imageUri = [[self child:@"weatherIconUrl"] text]; 

    return [PFCurrentConditions conditionsWithSummary:summary temperature:temp humidity:humidity wind:wind imageUrl:imageUri]; 

} 

,那麼你可以使用它,如下所示:

RXMLElement* rootElement = [RXMLElement elementFromXMLData:response.responseData];  
__autoreleasing PFWeatherReport* weatherReport = [rootElement asWeatherReport]; 

再次,這是無數的一個選項,但我個人最喜歡的。