我需要幫助解析來自URL的XML。我已經閱讀了很多內容,但無法弄清楚如何獲得此內容。我發現的所有示例都與示例以及如何從分析的XML數據中獲取信息有點不明確。Swift 2中的XML解析(Xcode 7)
我將如何解析這個XML
<menu>
<menuitems>
<item price="$10">Pizza</item>
<item price="$5">Salad</item>
<item price="$3">Bread</item>
</menuitems>
</menu>
這是我要離的教程,但我不明白爲什麼這個教程是在陣列和字典訪問數據。
http://www.theappguruz.com/blog/xml-parsing-using-nsxmlparse-swift
在Xcode中7(斯威夫特2),我將如何解析和訪問這些信息。我知道這不是如何訪問,但我正在尋找像下面的代碼。
print ("\(item[0].data)") // Pizza //
print ("\(item[0].price)") // $10 //
這是來自教程的代碼,但我無法弄清楚如何訪問從URL解析的所有數據。我將如何編輯此代碼以適合我的結構?
import UIKit
import Foundation
class ViewController: UIViewController, NSXMLParserDelegate
{
var parser = NSXMLParser()
var posts = NSMutableArray()
var elements = NSMutableDictionary()
var element = NSString()
var title1 = NSMutableString()
var date = NSMutableString()
func beginParsing()
{
posts = []
parser = NSXMLParser(contentsOfURL:(NSURL(string:"http://images.apple.com/main/rss/hotnews/hotnews.rss"))!)!
parser.delegate = self
parser.parse()
}
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])
{
element = elementName
if (elementName as NSString).isEqualToString("item")
{
elements = NSMutableDictionary()
elements = [:]
title1 = NSMutableString()
title1 = ""
date = NSMutableString()
date = ""
}
}
func parser(parser: NSXMLParser, foundCharacters string: String)
{
if element.isEqualToString("title") {
title1.appendString(string)
} else if element.isEqualToString("pubDate") {
date.appendString(string)
}
}
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
{
if (elementName as NSString).isEqualToString("item") {
if !title1.isEqual(nil) {
elements.setObject(title1, forKey: "title")
}
if !date.isEqual(nil) {
elements.setObject(date, forKey: "date")
}
posts.addObject(elements)
}
}
}
您可以嘗試將XML解析爲NSDictionary的[XMLDictionary](https://github.com/nicklockwood/XMLDictionary)。 –
你什麼時候調用beginParsing()方法?在viewDidLoad()中?或者它是一個委託方法? – IamMashed