Created
August 27, 2014 04:20
-
-
Save damianknopp/273b9f456f1b30615fbc to your computer and use it in GitHub Desktop.
Xml parser in swift, there has got to be a better way...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Xcode Version 6.0 (6A280e) | |
import Foundation | |
import UIKit | |
class DmkXmlParserDelegate: NSObject, NSXMLParserDelegate { | |
var curElementName: String | |
var say: String | |
var resp: Array<String> | |
override init() { | |
self.curElementName = "" | |
self.say = "" | |
self.resp = Array() | |
super.init() | |
} | |
func parserDidStartDocument(parser : NSXMLParser) { | |
NSLog("did start document") | |
} | |
func parserDidEndDocument(parser: NSXMLParser) { | |
NSLog("parser did end document") | |
} | |
func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: NSDictionary!) { | |
NSLog("start elements name is \(elementName)") | |
if(elementName == "Say"){ | |
say = "" | |
curElementName = elementName | |
} | |
} | |
func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, | |
qualifiedName qName: String!){ | |
NSLog("end elements name is \(elementName)") | |
if(elementName == "Say"){ | |
curElementName = "" | |
} | |
} | |
func parser(parser: NSXMLParser!, foundCharacters characters: String!){ | |
NSLog("found characters \(characters)") | |
if (curElementName == "Say") { | |
say = characters | |
resp.append(say) | |
} | |
} | |
} | |
func parseFromUrl(url: NSURL){ | |
NSLog("parsing xml at \(url)") | |
var xmlParser = NSXMLParser(contentsOfURL: url) | |
var delegate = DmkXmlParserDelegate() | |
xmlParser.delegate = delegate | |
var parseState = xmlParser.parse() | |
NSLog("parse was a success \(parseState)") | |
var arr: Array<String> = delegate.resp | |
NSLog("found \(arr.count) say elements") | |
for s in arr { | |
NSLog(s) | |
} | |
} | |
var str: String = "http://localhost:8080/dmk-scala-jersey/nc/login/user/damian" | |
var url = NSURL(string: str) | |
parseFromUrl(url) | |
NSLog("__END__") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment