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

しかし、私は "//p[@class='article_date']" という XPath ヘルパー クエリを使用していますが、問題はありませんが、私のコードではコンテンツが null です

4

1 に答える 1

2

コード例を実行して、 に変更[element content]する[element text]と、出力は次のようになります。

VOA = 2012 年 8 月 11 日

その Github repoで、彼らは言及しています(USAGEセクションで):

[電子テキスト]; // HTML 要素内のテキスト (最初のテキスト ノードのコンテンツ)

そして、それが使用するCONTENTメソッドのソース コードを見るとobjectForKeyTFHppleContentKey = "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 に答える