2013-05-06 48 views
0

目前我跟隨Ray Wenderlich的tutorial處理解析ios上的html。一切都很好,並根據解釋,這棵樹:抓住<tr>標籤的第一個孩子?

enter image description here

他們提取各教程中的標題和URL標記。

這是他們如何創建一個數組來保存他們的教程對象:

NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0]; 
    for (TFHppleElement *element in tutorialsNodes) { 
     // 5 
     Tutorial *tutorial = [[Tutorial alloc] init]; 
     [newTutorials addObject:tutorial]; 

     // 6 
     tutorial.title = [[element firstChild] content]; 

     // 7 
     tutorial.url = [element objectForKey:@"href"]; 
    } 

現在,這裏是我的問題。我目前在我的網站上嘗試了這一點。問題是我不知道如何獲得每個<tr>標籤的第四個孩子。

這是我的html樹。

enter image description here

我想只能從每一個標記,它的第四個孩子。但我不知道如何處理它。

這是正確的嗎?

 // 6 
     tutorial.title = [[element firstChild] content]; 

     // 7 
     tutorial.amount = [[element fourthChild] objectForKey:@"td"]; 

回答

0

可以使用兒童物業這樣做:)

首先,你需要接觸到所需的標籤來獲取所有的子元素。爲此,您可以設置xpath查詢,如下所示:div [@ id ='main']/table [@ class ='bodytext']/tbody/tr

然後你可以得到第四個孩子使用孩子屬性。這裏是示例代碼。

//3 
NSString *tutorialsXpathQueryString = @"//div[@id='main']/table[@class='bodytext']/tbody/tr"; 
NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString]; 

// 4 
NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0]; 
for (TFHppleElement *element in tutorialsNodes) { 
// 5 
Tutorial *tutorial = [[Tutorial alloc] init]; 
[newTutorials addObject:tutorial]; 

// 6 
TFHppleElement *trTag = [[element children] objectAtIndex:3]; 

tutorial.title = [trTag content]; 

希望這有助於