Вот часть моего URLSwift разбор имя атрибута для данного ELEMENTNAME
<cities>
<country name="Абхазия">
<city id="37188" region="27028" head="" type="3" country="Абхазия" part="" resort="" climate="">Новый Афон</city>
<city id="37178" region="10282" head="" type="3" country="Абхазия" part="" resort="" climate="">Пицунда</city>
<city id="37187" region="37187" head="" type="3" country="Абхазия" part="" resort="" climate="">Гудаута</city>
<city id="37172" region="10280" head="" type="3" country="Абхазия" part="" resort="" climate="">Гагра</city>
<city id="37189" region="10281" head="0" type="3" country="Абхазия" part="" resort="0" climate="">Сухум</city>
</country>
пользователь печатает имя города, например: "Пицунда"
и я хочу, чтобы получить его идентификатор. Для "Пицунда"
id - "10282"
.
Ниже я опубликовал свой нерабочий код.
var parser: NSXMLParser!
var city: String = String()
var ifDirOK = false
var ifCityNameOK = false
override func viewDidLoad() {
super.viewDidLoad()
let url: NSURL = NSURL(string: "https://pogoda.yandex.ru/static/cities.xml")!
parser = NSXMLParser(contentsOfURL: url)
parser.delegate = self
parser.parse()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!) {
//let cityID = attributeDict ["id"] as? NSString
if (elementName == "city"){
ifDirOK = true
}
}
func parser(parser: NSXMLParser!, foundCharacters string: String!) {
var data = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
if (data == city){
ifCityNameOK = true
}
}
func parser(parser: NSXMLParser!, foundAttributeDeclarationWithName attributeName: String!, forElement elementName: String!, type: String!, defaultValue: String!) {
if (ifDirOK && ifCityNameOK){
println("\(attributeName)")
}
}
func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!) {
}
В конце концов, я хочу передать идентификатор другому URL файла (export.yandex.ru/weather-ng/forecasts/{id of the city}.xml)
и разобрать его. Нужно ли мне создать еще один класс Swift и каким-то образом связать его с первым?
Непонятно, что вы спрашиваете - как насчет вашего кода не работает, или это то, что вы ищете подсказки, чтобы сделать что-то отличное от того, что он сейчас делает? –