no_picture

raptureXML でXMLのparse

XMLのパースしなきゃいけなくて、libxmlで処理するのめんどくさいなー。ということで、CocoaPodを探った結果、RaptureXMLを試してみることにしました。 URLから直接XMLを取得するイニシャライザがついていて、とても簡単に利用することができました。 CocoaPodsを使わない場合は libz と libxml2 をリンクしてやるようにして、RXMLElement.hとRXMLElement.mをプロジェクトに追加するだけで使えます。 だいたい以下のように利用してます。 NSURL* url = [NSURL URLWithString:@"http://eiel.info/hoge.xml"]; RXMLElement* root = [RXMLElement elementFromURL:url]; NSMutableArray* schedule = [NSMutableArray array]; [root iterate:@"item" usingBlock: ^(RXMLElement *item) { [schedule addObject:[[ALScheduleItem alloc] initWithRXMLElement:item]]; }]; i_schedule = [NSArray arrayWithArray:schedule]; RXMLElementオブジェクトを配列に格納しておいて利用しようとしたら、失敗したのでモデルオブジェクトを用意してやりました。 値を取り出すには [element child:@"day"].text; とやって取り出せます。DOMのインターフェイスになってますね。XPathも利用できるようです。 ソースコードも500行程度でコンパクトでした。