0

目前,我正在关注 Ray Wenderlich 的关于在 ios 上解析 html的教程。根据这棵树,一切都得到了完美的解释:

在此处输入图像描述
(来源:raywenderlich.com

他们为每个教程提取标题和 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树。

在此处输入图像描述

我试图只从每个标签中获取第四个孩子。但我不知道如何处理它。

这是正确的吗?

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

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

1 回答 1

0

您可以使用 children 属性来这样做:)

首先,您需要访问所需的标签以获取所有元素子项。为此,您可以像这样设置 xpath 查询:div[@id='main']/table[@class='bodytext']/tbody/tr

然后你可以使用 children 属性获得第四个孩子。这是示例代码。

//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];

希望这可以帮助

于 2013-08-28T10:56:14.667 回答