【问题标题】:How to delete that rows, when i get text from URL?当我从 URL 获取文本时,如何删除这些行?
【发布时间】:2014-10-27 01:50:18
【问题描述】:

我尝试从 URL 中获取一些文本并将其放在 UITextView 中。 那是我在ViewController 中的代码:

NSString *urlString = @"http:/...";
NSError  *error     = nil;
NSData   *dataURL   = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString] options:kNilOptions error:&error];

if (error)
    NSLog(@"%s: dataWithContentsOfURL error: %@", __FUNCTION__, error);
else
{
    NSString *result = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
    NSLog(@"%s: result = %@", __FUNCTION__, result);

    // if you were updating a label with an `IBOutlet` called `resultLabel`, you'd do something like:

    self.mytextview.text = result;
}

现在模拟器在我的视图中显示该文本:

对不起,文字是德语:)

现在如何隐藏或删除该 html、head、body 等?

【问题讨论】:

    标签: ios iphone xcode nsdata nsurl


    【解决方案1】:

    显示这样是因为您正在下载 HTML 格式的 PHP 文件的内容。

    您可以创建一个方法来查找和删除“”之间的每个 HTML 标记

    - (NSString*)stringByRemovingHTMLtags:(NSString*)string {
      NSRange range;
      while ((range = [string rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
        string = [string stringByReplacingCharactersInRange:range withString:@""];
      return string;
    }
    

    然后像这样在 UITextView 中设置文本:

     self.mytextview.text = [self stringByRemovingHTMLtags:result];
    

    编辑:为了得到&lt;p&gt;标签的内容,使用这个方法:

    - (NSString*)getPtagContentFromString:(NSString*)htmlString {
        NSRange startRange = [htmlString rangeOfString:@"<p>"];
        if (startRange.location != NSNotFound) {
            NSRange targetRange;
            targetRange.location = startRange.location + startRange.length;
            targetRange.length = [htmlString length] - targetRange.location;
            NSRange endRange = [htmlString rangeOfString:@"</p>" options:0 range:targetRange];
            if (endRange.location != NSNotFound) {
                targetRange.length = endRange.location - targetRange.location;
                return [htmlString substringWithRange:targetRange];
            }
        }
        return nil;
    }
    

    然后像这样在 UITextView 中设置文本:

     self.mytextview.text = [self getPtagContentFromString:result];
    

    【讨论】:

    • 嗨,Sebyddd,谢谢。上面的解决方案工作正常。我也会试试你的。
    • 当然,如果您使用 UIWebView,您可以使用@fic 的解决方案,但如果您正在下载网页的内容,我看不出有任何理由这样做。
    • 我试过了,我喜欢你的解决方案,但它也显示标题“PHP-Test”。我只想要“p”之间的文本。我该如何处理?
    【解决方案2】:

    您应该使用 UIWebView 并像这样加载您的 html 文本:

    [_webView loadHTMLString:result baseURL:nil];
    

    【讨论】:

    • 谢谢兄弟,非常好:-)
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2015-05-10
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多