Мне нужна помощь в анализе XML из URL-адреса. Я много читал об этом и не могу понять, как это получить. Все примеры, которые я нашел, немного неоднозначны с примерами и как захватить информацию из проанализированных XML-данных.XML-анализ в Swift 2 (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 (Swift 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)
}
}
}
Вы можете попробовать [XMLDictionary] (https://github.com/nicklockwood/XMLDictionary), который анализирует XML в NSDictionary. –
, когда вы называете свой метод beginParsing()? в viewDidLoad()? или это метод делегата? – IamMashed