前回で一応のサーバー側の準備ができたんで、今度はサーバーからのHTMLデータをiPhoneで受け取って解析する番っす。
 でその(143)同様、libxml2ライブラリ使って解析するわけですが、今回はその(140)のように無理矢理UIWebViewをUITableViewCellに組み込んでみたり(まあ、なりゆきと、面白そうだからやったわけですが…)はせずに、素直にUIWebViewを表示するだけのiPhoneアプリ作って、解析はコンソール出力でやっていきます。コンソ?な人はコンソールを表示するを読みましょう。

 まずはView-based Applicationプロジェクト作成。
 今回は久々、単品作成なんで名前も場所も適当でOK。私はとりあえず
htmlParser

 としました。
 プロジェクトの作り方がわからん人はXcodeの手順(1)を読むべし。

 プロジェクトが開いたらhtmlParserViewController.hをいじって
@interface htmlParserViewController : UIViewController {
IBOutlet UIWebView* webview;
}
@end

 としてからhtmlParserViewController.xibをダブルクリックでインターフェースビルダー起動。
 UIWebViewをドロップして

$テン*シー*シー-1

 File's Ownerのconnectionにあるwebviewと繋ぎましょう。
 IBOutlet 、File's Owner、connection?な人はその(160)を読めばよくってよ。

$テン*シー*シー-2

 で、これで準備完了なんでインターフェースビルダーはSaveして終了。XcodeでhtmlParserViewController.m開いてviewDidLoadを実装。とりあえず
http://localhost/konohana/mainlist.php

をダイレクトに指定して読み込ませてみる。
- (void)viewDidLoad {
[super viewDidLoad];
NSURLRequest* request = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://localhost/konohana/mainlist.php"]]
[webview loadRequest:request];

}

 やり方はwebviewインスタンスにloadRequestメッセージ送るだけっす。loadRequestメッセージのパラメータはNSURLRequestなんだけど、こいつはその(130)の応用。

$テン*シー*シー-3

 ばっちり出たザマス。
 んじゃ、今度はその(130)その(140)その(142)を組み合わせてサーバから送られてくる素のHTMLテキストをコンソールに表示した上でwebviewにも表示するように変更。
- (void)connection:(NSURLConnection*)connection
didReceiveData:(NSData*)data
{
char* p = (char*)[data bytes];
int len = [data length];
while (len-- > 0) {
putchar(*p++);
}
// webviewへの表示
NSString* htmlstring = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
[webview loadHTMLString:htmlstring
baseURL:[NSURL URLWithString:@"http://localhost/konohana/mainlist.php"]];
[htmlstring release];
}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
NSURLRequest* request = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://localhost/konohana/mainlist.php"]];
[NSURLConnection connectionWithRequest:request delegate:self];
}

 うりゃあ。

$テン*シー*シー-4

 バッチリ!
 あとはその(143)その(149)まででやったようにサーバからのHTMLテキストの解析と写真、テキストの送信機能を、こいつでこの花は?サーバー用に実装実験していけばいいわけっす。

 いよいよフィニッシュが近づいてきた。
 長かった…

------------
サンプルプロジェクト:htmlParser.zip