0

私がやろうとしているのは、サイト上のページの複数のセクションを解析することです。これが私がやっていることです:

NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.cetsp.com.br/"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];

TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];

NSArray *holder;

NSString *tutorialsXpathQueryString = @"//div[@class='info oeste']/a/h4";
NSString *tutorialsXpathQueryString2 = @"//div[@class='info norte']/a/h4";
NSString *tutorialsXpathQueryString3 = @"//div[@class='info centro']/a/h4";
NSString *tutorialsXpathQueryString4 = @"//div[@class='info leste']/a/h4";
NSString *tutorialsXpathQueryString5 = @"//div[@class='info sul']/a/h4";

NSArray *oeste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];
NSArray *norte = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString2];
NSArray *centro = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString3];
NSArray *leste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString4];
NSArray *sul = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString5];

holder = [[NSArray alloc] initWithObjects:norte, oeste, centro,leste,sul, nil];

for (NSArray *array in holder) {

    for (TFHppleElement *element in array) {

        NSLog([[element firstChild] content]);
    }
}

コンソールには 5 つの異なる正しい結果が記録されますが、ご覧のとおり、私のコードは非常に面倒です。では、複数のタグのすべてのコンテンツを取得するにはどうすればよいでしょうか?

ありがとう!

4

1 に答える 1

5

Hpple は XPathQuery を使用して HTML を解析します。任意のクラスを検索する場合は、次を使用できます。

@"//div[@class=*]/a/h4"

または、これらの特定のクラスのみが必要な場合は、次を試すことができます。

@"//div[@class='info oeste']/a/h4 | //div[@class='info norte']/a/h4 | //div[@class='info centro']/a/h4"

構文はここに文書化されています

于 2012-08-14T14:12:35.250 に答える