Hpple parsing HTML avec Objective-C

J'ai suivi le tutoriel de RayWendErlich pour parsingr le noeud HTML.

Je reçois le contenu d'un index.html . J'ai essayé d'utiliser cette méthode pour récupérer la valeur de l' arrièreplan .

 + (void)parseWithHTMLSsortingng:(NSSsortingng *)ssortingng { NSData *data = [ssortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; TFHpple *parser = [TFHpple hppleWithData:data isXML:NO]; NSSsortingng *XpathQuerySsortingng = @"//div[class='content']/div/div"; NSArray *nodes = [parser searchWithXPathQuery:XpathQuerySsortingng]; NSLog(@"%@",nodes); NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:0]; for (TFHppleElement *element in nodes) { Model *model = [[Model alloc] init]; model.colorSsortingng = [element objectForKey:@"style"]; [resultArray addObject:model]; //NSLog(@"%@",model.colorSsortingng); } } 

Donc la question est:

Ce que j'avais mal fait?

    Il y a 2 petites erreurs dans votre code.

    1. Le xPath que vous avez utilisé n'est pas correct. Il vous manque un @ devant la class .
    2. La key d' background est un atsortingbut, vous devez donc requestr à la TFHppleElement pour sa propriété atsortingbutes (qui est un dictionary) et get sa valeur via objectForKey:

    C'est le code final:

     NSArray *nodes = [parser searchWithXPathQuery:@"//div[@class='content']/div/div"]; for (TFHppleElement *element in nodes) { NSLog(@"%@",[element.atsortingbutes objectForKey:@"style"]); } 

    La sortie de la console est:

    arrière-plan: # D93D59
    fond: # E7923D
    arrière-plan: # 768479
    fond: # EBBA95
    fond: # E26967
    fond: # BF343F
    arrière-plan: # 254159
    fond: # F2F2F2
    arrière-plan: # D9A577
    fond: # BF8969
    fond: # 04000D