2012-08-14 53 views
0

我想要做的是解析网站上的页面的多个部分。下面是我在做什么:解析多个HTML分支hpple

NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.cetsp.com.br/"]; 
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl]; 

TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData]; 

NSArray *holder; 

NSString *tutorialsXpathQueryString = @"//div[@class='info oeste']/a/h4"; 
NSString *tutorialsXpathQueryString2 = @"//div[@class='info norte']/a/h4"; 
NSString *tutorialsXpathQueryString3 = @"//div[@class='info centro']/a/h4"; 
NSString *tutorialsXpathQueryString4 = @"//div[@class='info leste']/a/h4"; 
NSString *tutorialsXpathQueryString5 = @"//div[@class='info sul']/a/h4"; 

NSArray *oeste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString]; 
NSArray *norte = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString2]; 
NSArray *centro = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString3]; 
NSArray *leste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString4]; 
NSArray *sul = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString5]; 

holder = [[NSArray alloc] initWithObjects:norte, oeste, centro,leste,sul, nil]; 

for (NSArray *array in holder) { 

    for (TFHppleElement *element in array) { 

     NSLog([[element firstChild] content]); 
    } 
} 

控制台日志5种不同的正确的结果,但你可以看到我的代码是相当繁琐的。那么如何获得多个标签的所有内容?

谢谢!

回答

5

Hpple使用XPathQuery来解析HTML。如果你想搜索任何类,你可以使用:

@"//div[@class=*]/a/h4" 

,或者如果你只希望那些特定的类,你可以尝试:

@"//div[@class='info oeste']/a/h4 | //div[@class='info norte']/a/h4 | //div[@class='info centro']/a/h4" 

语法记录here

+0

感谢这个完美的作品:) – MCKapur 2012-08-14 22:52:25