2016-11-19 2 views
0

Wie kann ich Bild von HTML-Quelle in einigen der Websites in swift 2.2 anzeigen?Swift: wie Bild aus HTML-Quelle anzeigen

Eigentlich habe ich keine JSON oder XML.

Wichtig ist, dass ich Regex verwenden muss.

Ich versuchte dies:

if htmlContent != nil 
{ 
    let htmlContent = (item?.htmlContent)! as NSString 
    var imageSource = "" 
    let rangeOfString = NSMakeRange(0, htmlContent.length) 
    let regex = try! NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: [.CaseInsensitive]) 
    if htmlContent.length > 0 
    { 
     let match = regex.firstMatchInString(htmlContent as String, options: [.WithTransparentBounds], range: rangeOfString) 
     if match != nil 
     { 
      let imageURL = htmlContent.substringWithRange(match!.rangeAtIndex(2)) as NSString 
      print(imageURL) 
      if NSString(string: imageURL.lowercaseString).rangeOfString("feedBurner").location == NSNotFound 
      { 
       imageSource = imageURL as String 
      } 
     } 
    } 

    if imageSource != "" 
    { 
     imgHTMLLoader.setImageWithURL(NSURL(fileURLWithPath: imageSource), placeholderImage: UIImage(named: "placeholder")) 
     print("placeholderImage is not! nil") 
    } 
    else 
    { 
     imgHTMLLoader.image = UIImage(named: "placeholder") 
     print("placeholderImage is nil") 
    } 

} 

in dieser Probe (Bibliothek) ... immer gleich Null ist htmlcontent.

dieses Beispiel verwenden "Helper-Bibliothek", aber es Arbeit ...

dank

+0

Willkommen bei Stackoverflow dosn't! Kannst du bitte posten, was du noch probiert hast? Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) an. – FelixSFD

+0

Haben Sie [UIWebView] (https://developer.apple.com/reference/uikit/uiwebview) ausprobiert? –

+0

Nein ... aber funktioniert das für meine App? –

Antwort

0

Mit SwiftSoup und Swif 3

let doc = try SwiftSoup.parse("<div id=div1><p>Hello</p><p>Another <b>element</b></p><div id=div2><img src=foo.png></div></div>"); 
for element in try doc.select("img").array(){ 
    try print(element.attr("src")) 
} 
//foo.png