2011-07-14 13 views
0

私はフィードの最初の画像をretriveするために、このコードを使用して... htmlStringは、htmlタグが含まれており、同じケースで私が正しく最初の画像を得ることができますが、他の例ではnil NSStringのを取得します。私は理由を理解していません。私はhtmlString 1つの画像が含まれていることを確信しています。たとえば、この文字列のために、私は正確に最初の画像を取得することはできません。問題! IMGタグのURLを取得!

例: CultofMacは、Mac App StoreでOS X 10.7ライオンのために特別に開発された最初のアプリケーションの可用性を報告しました。このような状況では過去だけでiPhoneとiPad用のiOS 4.2.1のリリース、これらのデバイスの統一されたナンバリングシステムのバージョンを持っている最初のファームウェアを考え、新製品の発売数時間に先行しています。 OS X Lionがリリースに近づいているのですか?私のコードで何が悪い<img class="aligncenter size-full wp-image-21789" title="mac-app-store_t" src="http://static.slidetomac.com/wp-content/uploads/2011/07/mac-app-store_t.jpg" alt="" width="507" height="300" /

しかし、私は正確に画像のURLを取得することはできません... :</p> <p><img class="aligncenter size-full wp-image-21789" title="mac-app-store_t" src="http://static.slidetomac.com/wp-content/uploads/2011/07/mac-app-store_t.jpg" alt="" width="507" height="300" /></p> <p><span id="more-21780"></span></p> <p>ほんの数日前にアップル....私が必要とするキューの

部分はありますか? おかげ

- (NSString *)getFirstImage:(NSString *)htmlString{ 



    NSString *urlImage=nil; 
    NSScanner *theScanner = [NSScanner scannerWithString:htmlString]; 
    // find start of IMG tag 
    [theScanner scanUpToString:@"<img" intoString:nil]; 
    do { 
     [theScanner scanUpToString:@"src" intoString:nil]; 
     NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString:@"\"'"]; 
     [theScanner scanUpToCharactersFromSet:charset intoString:nil]; 
     [theScanner scanCharactersFromSet:charset intoString:nil]; 
     [theScanner scanUpToCharactersFromSet:charset intoString:&urlImage]; 

     if([urlImage rangeOfString:@"imagebutton.gif"].location == NSNotFound) return urlImage; 


    }while (![theScanner isAtEnd] ); 


    if([theScanner isAtEnd]) return nil; 
    return urlImage; 
} 

答えて

1

は私のコードで何が悪いのでしょうか?

あなたはHTMLを解析するパーサーを使用してスキャンしています。

HTMLの解析は非常に非常に困難です。一貫性の普及不足と組み合わせるXMLパーサの問題のすべて。

幸いなことに、HTMLの構文解析はまた、非常に多くの問題の解決策です。

は、適切なHTMLパーサを使用してください。 libxml2のは、HTML準拠モードを持っています。

There are a slew of question/answers on SO about HTML parsing.

+0

あなたは私の一例を投稿することができますか?感謝 –

関連する問題