【发布时间】:2015-12-10 13:57:38
【问题描述】:
我想编写一个应用程序来显示特定 HTML 页面的数据。 如何阅读文本,例如在 div 中并将该文本转换为字符串?如何在该页面上搜索某些内容或查看表格的行?
【问题讨论】:
标签: html string swift search webview
我想编写一个应用程序来显示特定 HTML 页面的数据。 如何阅读文本,例如在 div 中并将该文本转换为字符串?如何在该页面上搜索某些内容或查看表格的行?
【问题讨论】:
标签: html string swift search webview
您需要注意完成此任务所需的步骤。
首先需要加载html页面数据 用解析器找到你需要的东西之后。
在第一步中我找到了这段代码
let url = NSURL(string: "http://www.stackoverflow.com")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
task.resume()
来自此链接的示例How to make an HTTP request in Swift?
看这个例子,你做一个请求并返回一个数据,这个数据需要是String。收到数据后,你需要解析以找到你想要的。
第二步你需要工具来执行,简单的方法是使用像 slipt 这样的字符串方法。如果你需要更智能的东西,我推荐Regular Expression
split 的简单示例(swift 1.2)
var fullName = "First Last"
var fullNameArr = split(fullName) {$0 == " "}
var firstName: String = fullNameArr[0]
var lastName: String? = fullNameArr.count > 1 ? fullNameArr[1] : nil
示例(swift 2.0)
let fullName = "First Last"
let fullNameArr = split(fullName.characters){$0 == " "}.map(String.init)
fullNameArr[0] // First
fullNameArr[1] // Last
来自Swift: Split a String into an array的示例
这个链接是关于Regular Expression的好链接,注意它是一个强大的解析工具,用它你可以在你的html中搜索任何东西。
NSRegularExpression Tutorial: Getting Started
希望对您的解释有所帮助。
【讨论】:
html 页面都有<head> 和<body>,想象一个网站有一个<div id="price">,并且您有一个应用程序需要从 html 页面加载价格。为此,您可以使用正则表达式在<div id="price"> </div> 之间搜索内容,并在您的应用程序中显示某物的价格.. 它正在解析某物.. 什么是tfhpple 可以说更多?出现时的一些例子!?
更新了语法 (swift 5) 并进行了一些修改以获取 html 数据:
let url = NSURL(string: "https://www.stackoverflow.com")
let task = URLSession.shared.dataTask(with: url! as URL) {(data, response, error) in
if data != nil { // otherwise will crash for if url is empty
let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)!
print("url data:",dataString)
} else {print("url data not found")}
}
task.resume()
【讨论】: