XMLからブログ名を取得して来ようとすると、思わぬ壁にぶつかることがある。
例えばブログのタイトルってitemタグにあるわけではなく
<channel rdf:about="http://rssblog.ameba.jp/xxx/rss.html">
<title>ブログ名Powered by Ameba</title>
(以下略)
</channel>
と、channelタグにあったりする。
んでコイツをパース処理時にどう取得してくんべかなぁとあれこれ策を練ってみてもどーしても取れなかったりする。
(出来るのかもだけど僕は諦めましたという話です)
なのでitemタグから取得する方法を考えました。
いたってシンプルな話なのですが、itemタグ内にいるlinkタグで情報が取れた時に処理を追加します。
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if([_elementName isEqualToString:@"link"]) {
// 通常のlink情報取得処理
// ここで記事名を特定するメソッド追加
[self getArticleName_];
}
(以下略)
}
- (void)getArticleName_ {
NSRange nameRange = [link rangeOfString:@"ドメイン"];
if(nameRange.location != NSNotFound) {
データクラス.articleName = @"ブログ名";
}
}
てな感じで。
URLのドメインでほぼブログは特定出来るでしょうから、そこから無理くりブログを特定させてしまおうと思った次第です。
getArticleName_で複数のURLに対し値を割り振れれば良いのではないでしょうか。
無論、channelから簡単に取れるならそれに越したことはありません。どなたか教えて頂けると幸いです。