2013-05-06 42 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]; 

希望这有助于