0

编码:

NSString *linkStr=@"http://www.voanews.com/content/obama_pledges_aid_to_drought_stricken_farmers/1484380.html";
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:linkStr]];

// Create parser  
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:data];  

//Get all the cells of the 2nd row of the 3rd table   
NSArray *elements  = [xpathParser searchWithXPathQuery:@"//p[@class='article_date']"];  

// Access the first cell  
if ([elements count] > 0) 
{
    TFHppleElement *element = [elements objectAtIndex:0];  

    // Get the text within the cell tag  
    NSString *content = [element content];    
    NSLog(@"VOA = %@",content);       //Result : print NULL
}


[xpathParser release];  
[data release]; 

但我使用 XPath Helper 查询 "//p[@class='article_date']" ,没关系,但在我的代码中内容为空

4

1 回答 1

2

运行您的代码示例,如果我更改[element content]for [element text],我的输出是:

美国之音 = 2012 年 8 月 11 日

在其 Github repo中,他们提到(在USAGE部分):

[文本];// HTML 元素内的文本(第一个文本节点的内容)

并查看它使用的CONTENT方法的源代码objectForKey,其中TFHppleContentKey = "nodeContent". 看:

static NSString * const TFHppleNodeContentKey = @"nodeContent"

// Returns this tag's innerHTML content.
- (NSString *) content
{
    return [node objectForKey:TFHppleNodeContentKey];
}

似乎在您的示例中[element text]使用它是安全的。[element content]

我希望它有所帮助。

于 2012-11-28T15:10:05.970 回答