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...は、 の親を選択する XPath 式に置き換える必要がありますa

于 2011-09-01T12:59:35.623 に答える