Как загрузить html-страницу на iPhone в WebView без тега <img src => - PullRequest
0 голосов
/ 17 ноября 2010

Я загружаю html-страницу в веб-представление следующим образом:

NSString *description = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.mypage.html"] encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:pRova baseURL:nil];

Мне нужно удалить:

<img src="http://www.mypage/image" align="left" style="padding: 0px 10px 0px 0px; width: 301px; height: 280px;" alt="diaspora-uys" />

из описания NSString *, чтобы отобразить UIwebView без изображения итолько с текстом.Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 18 ноября 2010

Я решил таким образом:

- (NSString *)flattenHTML:(NSString *)html {
    NSScanner *theScanner;
    NSString *gt =nil;

    theScanner = [NSScanner scannerWithString:html];

    while ([theScanner isAtEnd] == NO) {
        // find start of tag
        [theScanner scanUpToString:@"<img" intoString:NULL] ; 

        // find end of tag
        [theScanner scanUpToString:@">" intoString:&gt] ;
    }

    html = [html stringByReplacingOccurrencesOfString:[ NSString stringWithFormat:@"%@>", gt] withString:@""];
    return html;
}  
0 голосов
/ 24 июля 2012

Я изменил код, и он работает отлично. Это только удалит значение src. Остальные значения и тег изображения не изменяются

- (NSString *)flattenHTML:(NSString *)html {
    NSScanner *theScanner;
    NSString *gt = nil;
    NSString *temp = nil;
    theScanner = [NSScanner scannerWithString:html];

    while ([theScanner isAtEnd] == NO) {
        // find start of tag
        [theScanner scanUpToString:@"<img" intoString:&temp]; 

        //find the src tag
        [theScanner scanUpToString:@"src" intoString:&temp]; 

        [theScanner scanUpToString:@"=" intoString:&temp];

        [theScanner scanUpToString:@" " intoString:&gt];
        if (!gt) {
            [theScanner scanUpToString:@">" intoString:&gt];    
        }

        if (gt) {
            html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@",gt] withString:@"=\"\""];    
        }
    }

    return html;
}  
0 голосов
/ 17 ноября 2010
0 голосов
/ 17 ноября 2010

1 / загрузить содержимое HTML в строку

+(id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)

2 / удалить тег <img /> в строке

3 / использовать loadHTMLString для себяwebView

Взгляните на Ссылку NSString

Вместо поиска тега <img /> в строке HTML, вы также можете заменить <img на <img style='display:none;' чтобы скрыть изображение.Но он все равно будет загружен ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...