2012-01-13 6 views
2

iPhoneでXpathを使って天気情報をhereから抽出しようとしています。今のところ、すべてのデータを解析しますが、コンテンツを抽出してテーブルに表示する方法については固執しています。iPhoneでXpathを表示する方法

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[ @"http://aviationweather.gov/adds/metars/?station_ids=1234&std_trans=translated&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"stringByReplacingOccurrencesOfString:@"1234" withString:self.title]]]; 

TFHpple * doc  = [[TFHpple alloc] initWithHTMLData:data]; 
NSArray * elements = [doc searchWithXPathQuery:@"//table[1]//tr"]; 
NSLog(@"%@", elements); 
TFHppleElement * element = [elements objectAtIndex:0]; 
[element content];    // Tag's innerHTML 
[element tagName];    // "a" 
[element attributes];   // NSDictionary of href, class, id, etc. 
[element objectForKey:@"href"]; // Easy access to single attribute 

誰もがそのこれまでに出力するかを確認する必要がある場合、私に知らせてください: これは私がこれまで持っているものです。

おかげで、 アンドリュー

+1

Googleで「UITableViewチュートリアル」をご覧ください。 http://www.google.com/search?client=safari&rls=en&q=uitableview+tutorial&ie=UTF-8&oe=UTF-8 –

+0

私が理解していないテーブルを表示していない、そのデータを整理してそれを表示することができます。しかし、ありがとう – Boos1993

+0

私は理解していないと思います。どのデータを表示したいですか?データを配列に入れることができれば、それをテーブルに入れることができます。そして、あなたは既に 'elements'にその配列を持っているように見えます。それは、配列をループしてテーブルのセルを作ることだけです。 –

答えて

1

は私がポイントにあなたのを持って、どこへ行くにノーとしませんでした同じ問題を持っていたが、私はこのコードを実装してしまいます。私はあなたが与えることができるすべてです私はこれを開発しているアプリの性質には、それが正常に動作するようにする必要が少しビットがあることを助けることを願っています。実際に必要とするコードへの実際の実装だけではありません。

#import "XPathQuery.h" 


NSMutableArray *weatherArray = [[NSMutableArray arrayWithArray:0]retain]; // Initilize the NSMutableArray can also be done with just an NSArray but you will have to change the populateArray method. 
NSString *xPathLookupQuery = @"//table[1]//tr"; // Path in xml 
nodes = PerformXMLXPathQuery(data, xPathLookupQuery); // Pass the data in that you need to search through 
[self populateArray:weatherArray fromNodes:nodes]; // To populate multiple values into array. 

session = [[self fetchContent:nodes] retain]; // To populate a single value and returns value. 

- (void)populateArray:(NSMutableArray *)array fromNodes:(NSArray *)nodes 
{ 
for (NSDictionary *node in nodes) { 
    for (id key in node) { 
     if ([key isEqualToString:@"nodeContent"]) { 
      [array addObject:[node objectForKey:key]]; 
     } 
    } 
} 
} 

両方を必要としない限り、上記のコードまたは以下のコードのいずれかが必要です。

- (NSString *)fetchContent:(NSArray *)nodes 
{ 
NSString *result = @""; 
for (NSDictionary *node in nodes) { 
    for (id key in node) { 
     if([key isEqualToString:@"nodeContent"]) { 
      result = [node objectForKey:key]; 
     } 
    } 
} 
return result; 
}