Как я могу разобрать данные XML с помощью AFNetworking 3.0 - PullRequest
0 голосов
/ 05 июля 2018

Я делаю простой проект для отображения отчета о погоде, используя эту ссылку и я реализовал следующий код, чтобы получить результат ...

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:@"https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl" parameters:nil progress:nil success:^(NSURLSessionDataTask * task, id responseObject) {
    NSData * data = (NSData *)responseObject;
    NSLog(@"Response String: %@", [NSString stringWithUTF8String:[data bytes]]);
 }failure:^(NSURLSessionDataTask *  operation, NSError *  error) {
    NSLog(@"Error the result is unfound in the database %@", error);

}];

В приведенном выше коде я наконец-то получил XML, но я не знаю, как его анализировать и отображать в виде таблицы ... Я новичок в разработке ios. Может кто-нибудь, пожалуйста, помогите мне, что сделать, чтобы получить данные и отобразить его в виде таблицы ..

1 Ответ

0 голосов
/ 05 июля 2018

каждый XML-файл, например, список свойств, может быть приведен как NSDictionary, я быстрый разработчик, но, если у вас есть данные в XML, можно преобразовать их в NSDictionary

в Swift 4:

do {
   if let plist = try PropertyListSerialization.propertyList(from: plistData, 
    format: nil)
        as? NSDictionary  {
            // Successfully read  list.
            print(plist)

        } else {
            print("not a dictionary")
        }
} catch let error {
    print("not a plist:", error.localizedDescription)
}

В Objective-C:

NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"myPlist.plist"];

if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
    plistPath = [[NSBundle mainBundle] pathForResource:@"myPlist" ofType:@"plist"];
}

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

в этом случае вы можете передать свои данные вместо Plist

теперь вы можете кэшировать данные в ваших моделях и отображать их в UITableView

удачи;)

...