所以我正在创建一个iOS应用程序,我创建一个警报栏,每次打开应用程序时都会根据网站上的文本进行更新。但是,当我发出HTTP请求时,它只会给我该网站的HTML。如何从网页而不是HTML获取文本?
我正在使用下面的Swift代码
let url = NSURL(string: "www.examlpewebsite.com")
let request = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, text, error) in
self.alertLabel.text = (NSString(data: text, encoding: NSUTF8StringEncoding))
那怎么办呢?
我一直在努力弄清楚如何解决这个问题,如果这可以解决,那就太棒了!
提前致谢:)
答案 0 :(得分:1)
您可以使用Swift-HTML-Parser之类的XML / HTTP解析器。只需检查github存储库上的'Usage'信息即可。它显示了如何将文件添加到项目中。然后,您可以使用框架来解析html:
//your HTML
let html = (NSString(data: text, encoding: NSUTF8StringEncoding))
var err : NSError?
var parser = HTMLParser(html: html, error: &err)
if err != nil {
println(err)
exit(1)
}
var bodyNode = parser.body
//Add tags to search
if let inputNodes = bodyNode?.findChildTags("b") {
for node in inputNodes {
println(node.contents)
}
}
答案 1 :(得分:0)
如果是您的网站,您可以通过提供仅提供文本的请求版本来节省很多麻烦。大多数Web框架允许您提供所需的任何格式,如果您选择提供例如text/plain
你可以直接使用答案的正文。为此,您可能会实现一个可以作为
let url = NSURL(string: "www.examlpewebsite.com/message.txt")
将设置响应标头Content-Type: text/plain
以指示它仅传送"文本"。这将节省您解析答案的工作量。请发布您喜欢的网页框架或搜索提供上述内容的答案,我相信您会找到一些内容。