如何解析swift中的特定标记

时间:2018-04-19 05:28:54

标签: swift html-parsing

我在HTML页面中有这行代码:<a href="www.myWebsite.com" rel="ibox"></a>

我如何以最好的方式在swift代码中解析它,考虑到我不仅有这个标签“a”而且还有很多?

2 个答案:

答案 0 :(得分:2)

在Swift中解析HTML通常需要第三方框架,我个人使用SwiftSoup

以下是使用SwiftSoup在Swift中解析href的方法。

do {
   let html = "<a href=\"www.myWebsite.com\" rel=\"ibox\"></a>"
   let doc: Document = try SwiftSoup.parse(html)
   let links = try doc.select("a").map {
        try $0.attr("href")
    } // ["www.myWebsite.com"]
} catch Exception.Error(let type, let message) {
    print(message)
} catch {
    print("error")
}

Link to the documentation

在上文中,links数组包含所有页面上链接的值。

答案 1 :(得分:2)

import Foundation

let html = "theHtmlYouWannaParse"

var err : NSError?
var parser     = HTMLParser(html: html, error: &err)
if err != nil {
    println(err)
    exit(1)
}

var bodyNode   = parser.body

if let inputNodes = bodyNode?.findChildTags("b") {
    for node in inputNodes {
        println(node.contents)
    }
}

if let inputNodes = bodyNode?.findChildTags("a") {
    for node in inputNodes {
        println(node.getAttributeNamed("href")) //<- Here you would get your files link
    }
}