0

请使用 hpple(xpath),这是我之前问题的后续:

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

1 回答 1

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('), 
                        ')'
                        )
       )

where...必须替换为选择a.

于 2011-09-01T12:59:35.623 回答