0

このコードを使用して、フィードの最初の画像を取得します... htmlStringにはhtmlタグが含まれており、同じ場合は最初の画像を正しく取得できますが、それ以外の場合はnilNSStringを取得します。理由がわかりません。htmlStringには1つの画像が含まれていると確信しています。たとえば、この文字列の場合、最初の画像を正しく取得できません。

例:CultOfMachasegnalatoladisponibilitàsulMacAppStore delle prime applicazioni sviluppate appositamente per OS X10.7Lion。passato situazioniには、Questa hanno preceduto di qualche ora il lancio di nuovi prodotti、basti pensare al rilascio di iOS 4.2.1 per iPhone e iPad、primo Firmware che ha unificato la numerazione delle versioni di sistema diquestidispositiviがあります。OSXLionèpiùvicinoalrilascio?</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>ソロクアルチェジョルノファアップル....

私が必要とするコードの部分は次のとおりです。<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を正しく取得できません...コードの何が問題になっていますか?ありがとう

- (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;
}
4

1 に答える 1

1

私のコードで何が問題になっていますか?

HTML の解析にスキャニング パーサーを使用しています。

HTML の解析は非常に困難です。XML パーサーのすべての問題が、蔓延する一貫性の欠如と組み合わされています。

幸いなことに、HTML の構文解析も非常に解決済みの問題です。

適切な HTML パーサーを使用してください。libxml2 には HTML 準拠モードがあります。

SO には、HTML 解析に関する多くの質問/回答があります。

于 2011-07-14T22:39:05.540 に答える