0

よし、これが私のアプリの現状です。リモート サーバーに接続して 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);

どちらが返されますか

ここに画像の説明を入力

まさに欲しい情報です。私の質問は、金のブラケットから二重の値を取得して、アプリケーションで使用する方法です。

どうもありがとう!

4

2 に答える 2

0

libxml2 から NSXMLParser や多数のオープンソース プロジェクトに至るまで、かなりの数の XML 解析オプションが利用可能です。

私のお気に入りの XML パーサーの 1 つは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]; 

繰り返しますが、これは無数のオプションの 1 つですが、私の個人的なお気に入りです。

于 2013-10-13T08:27:28.800 に答える