3

我对 Objective-c 很陌生,但对常规 C 很好,我正在研究 iPhone 开发。现在我在学校评分系统中的所有节点都是 nil 我知道它们在正确的 xPath 中,因为//table[@class='grid']/tbody/tr[4]/td[16]在 Firefox xPath 检查器插件中正确显示。我知道我从网页收到的 NSData 是正确的,因为我对它进行了 NSlogged。但由于某种原因,我仍然以 nil Nodes 告终。

Course2 *fillCourse(int row){

    NSURL *CUrl = [NSURL URLWithString:@"MY SCHOOL SITE HERE"];
    NSData *CHtmlData = [NSData dataWithContentsOfURL:CUrl];

    TFHpple *StuffParser = [TFHpple hppleWithHTMLData:CHtmlData];
    NSString *XpathQ = @"//table[@class='grid']/tbody/tr[5]/td[16]/a";
    NSArray *tutorialsNodes = [StuffParser searchWithXPathQuery:XpathQ];
    /*
    for(TFHppleElement *string in tutorialsNodes){
        NSLog(@"%@",[element content]);

    }
     */
    NSString *XpathQ2 = @"//table[@class='grid']/tbody/tr[5]/td[16]/a";
    NSArray *tutorialsNodes2 = [StuffParser searchWithXPathQuery:XpathQ2]; 

    Course2 *COUR = [[Course2 alloc] init];
    //  NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0];
    for (TFHppleElement *element in tutorialsNodes) {
        COUR.grade = [element content];
        COUR.teacherPage = [NSURL URLWithString:[element objectForKey:@"href"]];
    }
    for (TFHppleElement *element2 in tutorialsNodes2) {
       COUR.Class = [[element2 firstChild] content];
    }

    return COUR;
}
4

1 回答 1

1

尝试tbody从您的 XPath 查询中删除。即,让它看起来像//table[@class='grid']/tr[4]/td[16]。我对 Hpple 也有类似的问题,我不得不删除所有tbody's.

于 2015-02-11T18:59:12.067 回答