5

Hppleを使用してHTMLタグをiOSに解析しています。HTMLタグがあるデータを解析できます

 <div id="NewsPageSubTitle">
         <p><**span** hi how are you>

iOSコードの使用:

NSString *tutorialsXpathQueryString = @"//div[@id='NewsPageArticle']/p/span ";
 NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];

しかし、スパンがない場合はほとんどありません。つまり、htmlの文字列は、次のようにタグ「p」によって直接アクセスされます。

<div id="NewsPageSubTitle">
             <p>< hi how are you>

ここでは、iOSコードを次のように使用しています。

NSString *tutorialsXpathQueryString = @"//div[@id='NewsPageArticle']/p ";
     NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];

しかし、ここで私は応答として空白のデータを取得しています。

誰かが問題を解決する方法を教えてもらえますか?

4

3 に答える 3

2

これで確認してください:https ://github.com/mwaterfall/MWFeedParser

これにより、iphonesdk用のHTMLパーサーが提供されます。

その他のヘルプ:

このブログここ

于 2012-12-28T12:43:51.403 に答える
2

パラタグにスパンがある場合とない場合があるので、子をループしてそれを処理することをお勧めします

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSData  * data      = [NSData dataWithContentsOfFile:filePath];
    TFHpple * tutorialsParser       = [[TFHpple alloc] initWithHTMLData:data];

    NSString *tutorialsXpathQueryString = @"//div[@id='NewsPageSubTitle']";
    NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];

    for (TFHppleElement * element in tutorialsNodes) {
        NSLog(@"%@", element);
        NSLog(@"%@", [element tagName]);
        NSLog(@"%@", [element attributes]);
        NSLog(@"%@", [element children]);
        for (TFHppleElement *childElement in [element children]) {
                NSLog(@"%@", childElement);
        }
    }
于 2012-12-28T16:18:47.373 に答える
0
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"html" inDirectory:@"New Folder 2"];
NSData  * data      = [NSData dataWithContentsOfFile:filePath];

NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];

NSString *htmlString = [[NSString alloc] initWithData:[readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];


TFHpple * Parser       = [[TFHpple alloc] initWithHTMLData:data];

NSString *query = @"//p";

NSArray *nodes = [Parser searchWithXPathQuery:query];
for (TFHppleElement *item in nodes)
    {
       NSLog(@"Title : %@", item.content);

            NSLog(@"URL : %@", [item.attributes valueForKey:@"href"]);
      }
于 2014-05-23T08:13:14.843 に答える