2011-09-01 86 views
0

请使用hpple(的XPath),这是一个后续我刚才的问题:如何通过hpple(xpath)获取html,xml的元素?

http://stackoverflow.com/questions/6723244/iphone-how-to-select-this-label 

我怎样才能在seekVideo(number)多少?例如:

<a href="#" class="transcriptLink" onclick="seekVideo(2000); return false;" 

我想要“2000”。

我曾尝试:

NSArray *elements = [xpathParser search:@"//div[@id='transcriptText']/div/p/number(substring-before(substring-after(@onclick, '('), ')'))"]; 

但是,这是不对的。我应该怎么做?

如果有人可以使用名为hpple代码框架(的XPath),这将是巨大的。

这是我获取文本代码,现在如何为越来越号码改成?????

#define WebSite @"http://www.ted.com/talks/matt_cutts_try_something_new_for_30_days.html" 

- (void)setLoadData 
{ 
    NSData *siteData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:WebSite]]; 



    TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:siteData]; 
    NSArray *elements = [xpathParser search:@"//div[@id='transcriptText']/div/p/a[number(substring-before(substring-after(@onclick, '('), ')')) >2000]/text()"]; 

    NSMutableArray *arr = [[NSMutableArray alloc] init]; 

    for (TFHppleElement *element in elements) 
    { 

     NSString *strs = [element content]; 
     NSLog(@"cc: %@", strs); 
     [arr addObject:strs]; 
     NSLog(@"arr: %@", arr); 

    } 
    self.listData = arr; 
    [arr release]; 
    [xpathParser release]; 
} 
+0

问得好,+1。请参阅我的回答以解释问题以及正确的XPath表达式,该表达式的计算结果为所需的数字。 –

回答

1

我曾尝试:

 NSArray *elements = [xpathParser 
search:@"//div[@id='transcriptText']/div/p/number(substring-before(substring-after(@onclick, 
'('), ')'))"]; 

但是,这是不对的。我应该怎么做 ?

在XPath 1.0中,将函数调用作为位置步骤在语法上是非法的。

尝试:

substring-before(substring-after(.../a/@onclick, 'seekVideo('), 
       ')' 
       ) 

或者尝试:

number(
     substring-before(substring-after(.../a/@onclick, 'seekVideo('), 
         ')' 
         ) 
     ) 

其中...必须与选择的a父XPath表达式来代替。

+0

你能给我真正的代码:“where ...必须用XPath表达式来替代,这个表达式选择一个父对象。” – libai

+0

@libai:我使用过“...”,因为您尚未提供任何要评估XPath表达式的XML文档。它是*你*必须提供它。如果你不明白这个基本的事实,那么你正在浪费许多读者的时间 - 也绝对是你的时间。请编辑您的问题,提供您想要使用的XML文档(最少的文档是最好的),然后在评论中通知我。在那之前我无能为力。记住 - 我们这里不是clairevoyants ... –

+0

谢谢你,我改变了我的问题,等待你的帮助? – libai

相关问题