Ios swift中的HTML解析
我正在将html内容从objective c解析为swift,作为Ios swift中的HTML解析,ios,swift,html-parsing,Ios,Swift,Html Parsing,我正在将html内容从objective c解析为swift,作为 var tutorialsURL = NSURL(string: "http://www.raywenderlich.com/tutorials") var tutorialsHTMLData: NSData = NSData(contentsOfURL: tutorialsURL) var tutorialsParser = TFHpple(HTMLData: tutorialsHTMLData)
var tutorialsURL = NSURL(string: "http://www.raywenderlich.com/tutorials")
var tutorialsHTMLData: NSData = NSData(contentsOfURL: tutorialsURL)
var tutorialsParser = TFHpple(HTMLData: tutorialsHTMLData)
var tutorialsXPathString = "//div[@class='content-wrapper']/ul/li/a"
var tutorialNodes = tutorialsParser.searchWithXPathQuery(tutorialsXPathString)
var newTutorials: NSMutableArray = [0]
for element in tutorialNodes
{
var elementTwo: TFHppleElement = element as TFHppleElement
var tutorial = Tutorial()
println("my data in element2 \(elementTwo)")
println("\(tutorial)")
newTutorials.addObject(tutorial)
tutorial.title = elementTwo.firstChild.content as String!
tutorial.url = elementTwo.objectForKey("href")
}
objects = newTutorials
tableView.reloadData()
}
但是当我运行这个程序时,我得到了类似于致命错误的错误:在展开可选值时意外地发现了nil
有人帮我解决问题吗?经过一番努力,我找到了问题的解决方案,在节点上,***var tutorialxpathString=“//div[@class='content-wrapper']]/ul/li/a”**没有正确给出, 我已经尝试了另一个url,并正确地给出了searchpathstring,问题得到了解决
func loadTutorial()
{
var tutorialsURL = NSURL(string: "http://www.worldgeneralknowledge.com/important_books_and_aurther.html")
var htmlData: NSData = NSData(contentsOfURL: tutorialsURL)
var tutorialsParser = TFHpple(HTMLData: htmlData)
var tutorialsXPathString = "//table/tr/td[@class=\"tr_dark\"]"
var tutorialNodes = tutorialsParser.searchWithXPathQuery(tutorialsXPathString) as NSArray
if(tutorialNodes.count == 0)
{
println("empty here")
}
else
{
for element in tutorialNodes
{
var elementTwo: TFHppleElement = element as TFHppleElement
var tutorial = Tutorial()
println("\(elementTwo.firstChild.content)")
tutorial.title = elementTwo.firstChild.content as String!
objects.addObject(tutorial.title)
}
tableView.reloadData()
}
}
如果需要,还可以通过将其指定为searchpathstring来搜索更多节点,并且可以将它们添加到单个数组中,然后可以打印内容
谢谢。您在哪一行收到此错误?确切地说是在
tutorial.title=elementTwo.firstChild.content as String代码>tutorial.url=elementTwo.objectForKey(“href”)
在这两行中