Skip to content

Instantly share code, notes, and snippets.

@damianknopp
Created August 27, 2014 04:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save damianknopp/273b9f456f1b30615fbc to your computer and use it in GitHub Desktop.
Save damianknopp/273b9f456f1b30615fbc to your computer and use it in GitHub Desktop.
Xml parser in swift, there has got to be a better way...
// 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