XPathQuery
XMLのパーサを利用すると、不完全なHTMLのパースに失敗するので、
ここにあるlibxml2のラッパーを利用して、
XPathで要素を取得。
導入の仕方
ここ
一部変更したのはHeader Search Pathsに追加するのを/usr/include/libxml2にすること。
実装
PerformHTMLXPathQueryを使う。
NSURL *url = [NSURL URLWithString:@"http://google.com"];
NSURLRequest *request = [NSMutableURLRequest requestWithURL: url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [
NSURLConnection sendSynchronousRequest: request
returningResponse: &response
error: &error
];
if(error) {
LOG(@"%@", error);
}
NSArray *imgs = PerformHTMLXPathQuery(data, @"//img");
for (NSDictionary *dic in imgs) {
for (NSDictionary *attr in [dic objectForKey:@"nodeAttributeArray"] ) {
NSString *attr_name = [attr objectForKey:@"attributeName"];
NSString *attr_value = [attr objectForKey:@"nodeContent"];
}
}
0 件のコメント:
コメントを投稿