简体   繁体   English

如何在Swift 3中使用XML解析变量显示Web视图?

[英]How do you show web view with XML parsed variable in Swift 3?

I'm pretty stuck in showing XML parsed data to web view. 我非常坚持将XML解析数据显示到Web视图中。

import UIKit
import Fuzi

class ViewController: UIViewController {

@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    let myURLString = "https://www.naver.com"
    var myHTMLString = ""
    guard let myURL = URL(string: myURLString) else {
        print("Error: \(myURLString) doesn't seem to be a valid URL")
        return
    }

    do {
        myHTMLString = try String(contentsOf: myURL, encoding: .ascii)
    } catch let error {
        print("Error: \(error)")
    }

    do {
        let doc = try! HTMLDocument(string: myHTMLString, encoding: String.Encoding.utf8)

        // XPath queries
        if let firstDiv = doc.firstChild(xpath: "//*[@id='PM_ID_ct']/div[@class='container']") {
            print("44444")
            print(firstDiv)
            let body:String = firstDiv
            webView.loadHTMLString(firstDiv as String, baseURL: nil)
        }

    } catch let error{
        print(error)
    }

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

The XML parsed well but when I put the xml variable into web view it makes an error. XML解析得很好但是当我将xml变量放入Web视图时会出错。 The error is: 错误是:

Cannot convert value of type 'XMLElement' to specified type 'String' 无法将“XMLElement”类型的值转换为指定类型“String”

Edit Here is one more try 编辑这是另一个尝试

When I changed 当我改变

let body:String = firstDiv

to

let body:String = firstDiv.stringValue

It removes all the tags and attributes and remained only texts 它删除所有标签和属性,仅保留文本

stringValue only return strings. stringValue只返回字符串。 The correct method should be: 正确的方法应该是:

    let body:String = firstDiv.rawXML

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM