2014-09-02 18 views
0

我尝试从URL中获取一些文本并将其放在UITextView中。 那我在ViewController代码:如何删除那些行,当我从URL获取文本?

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

现在模拟器显示了我的观点,即文本: enter image description here

对不起,文字是德国:)现在

我怎么能隐藏或删除HTML,头,身体等?

回答

1

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

您可以创建找到&删除 “<” 之间的每个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]; 

编辑:为了获得<p>标签的内容,请使用此方法:

- (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]; 
+0

嘿Sebyddd,谢谢。上述解决方案工作正常。我也会尝试你的。 – Mehmet63 2014-09-02 18:10:52

+0

当然,如果您使用的是UIWebView,您可以使用@ fic的解决方案,但如果您正在下载网页的内容,我看不到任何理由。 – Sebyddd 2014-09-02 18:13:46

+0

我试过了,我喜欢你的解决方案,但它显示标题也是“PHP-Test”。我只想要“p”之间的文本。我该如何处理? – Mehmet63 2014-09-02 18:22:21

1

您应该使用UIWebView并加载HTML文本是这样的:

[_webView loadHTMLString:result baseURL:nil]; 
+0

感谢兄弟,非常漂亮:-) – Mehmet63 2014-09-02 18:08:32