// // ViewController.swift // MyXML // // Created by Hackeru_Student on 9/16/18. // Copyright © 2018 Hackeru_Student. All rights reserved. // import UIKit class ViewController: UIViewController,XMLParserDelegate { //string which display our result var display:String = "" //boolean which indicate an element name var passName:Bool = false var passCountry:Bool = false //we need xml parser var parser=XMLParser() override func viewDidLoad() { super.viewDidLoad() //let start our work print ("Loading XML") let myUrl:String = "http://www.boi.org.il/currency.xml" //convert to URL let url:URL = URL(string: myUrl)! //user our parser for getting the information parser = XMLParser(contentsOf: url)! //let the parser know that all the methods are here parser.delegate=self //create a boolean expression if we succesed to parse the xml let success:Bool = parser.parse() if success { print ("xml is gotta") print ("our results:\n\(display)") } else { print ("we have an error") } } //start of element -> func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { switch elementName { case "COUNTRY": passCountry=true case "NAME": passName=true default: break } } //data inside element -> DATA func parser(_ parser: XMLParser, foundCharacters string: String) { if passName { display+="name:\(string) " } if passCountry { display+="Country:\(string)\n" } } func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { switch elementName { case "COUNTRY": passCountry=false case "NAME": passName=false default: break } } func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) { print ("err:\(parseError)") } }