2017-05-24 43 views
0

我想從包含SWXMLHASH或AEXML庫的我的博客RSS的URL解析XML。我找到了解決方案,但是當我嘗試解決方案時,我的應用崩潰了。 這是遇到的問題:fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)如何將Alamofire與AEXML或SWXMLHASH結合使用

而且有我的代碼這是在viewDidLoad中:

` Alamofire.request("http://myblog.com/feed").responseJSON { response in 

     if let data = response.data { 

     let xml = SWXMLHash.parse(data) 
      let news = xml["rss"]["channel"]["item"][0]["title"].element?.text 
      print(news!) 
     } 
     } 
` 

是否有任何其他的解決方案呢?我不想使用NSXMLParser,我想使用這些庫或者如果它存在任何最新的庫,我可以使用。

謝謝你的幫助!

+0

我以爲這是在'打印崩潰(新聞!)'。 'news'必須爲零,所以你的XML在這條路上一定不能有任何東西。 –

+0

[鏈接](http://imgur.com/a/O1GwC)我的XML的主要結構。我開始思考,可能我犯了一個錯誤。謝謝你的評論Tristan – Oliver

回答

0

使用

Alamofire.request("http://myblog.com/feed").response

Alamofire.request("http://myblog.com/feed").responseJSON

我用AEXML ..嘗試這個

Alamofire.request("http://myblog.com/feed").response { res in 

     guard let xml = res.data else { 
      return 
     } 

     var options = AEXMLOptions() 
     options.parserSettings.shouldProcessNamespaces = false 
     options.parserSettings.shouldReportNamespacePrefixes = false 
     options.parserSettings.shouldResolveExternalEntities = false 

     do { 
      let xmlDoc = try AEXMLDocument(xml: xml, options: options) 

      print(xmlDoc.root["channel"]["item"]["title"].value!) 

     } catch let error { 
      print(error) 
     } 
} 
+0

不幸的是,類型AEXMLDocument的值沒有成員NSXMLParserOptions()...而且我嘗試了很多機會,比如AEXMLOptions.ParserSettings,AEXMLDocument()。options等它總是沒有工作。我認爲XMLParser選項的用法已經改變。我非常感謝你的幫助! – Oliver

+0

對不起..我正在使用舊版本的AEXML。我將其更改爲最新版本。 – Daniel

+0

我認爲你必須將'responseJSON'改爲'response'。你正在解析XML ..不是JSON。 – Daniel

相關問題