2012-12-28 12 views
5

Sto analizzando Tag HTML in iOS utilizzando Hpple. Sono in grado di analizzare i dati in cui il tag HTML èAnalisi in HTML <Tag> in ios

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

Utilizzando il codice iOS:

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

ma in alcuni casi non ho arco, Voglio dire la stringa in HTML si accede da tag "p" direttamente come:

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

Qui sto usando il codice iOS come:

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

ma qui sto ricevendo un dato vuoto in risposta.

qualcuno può farmi sapere come risolvere il problema?

risposta

2

dato che a volte il tag para ha durata e, a volte non è così, vorrei suggerire cercando di gestire tale da loop sui figli

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); 
     } 
    } 
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"]); 
     }