我需要帮助解析来自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