Skip to content

Instantly share code, notes, and snippets.

@mchirico
Last active December 5, 2015 22:06
Show Gist options
  • Save mchirico/c93d47541996321d8696 to your computer and use it in GitHub Desktop.
Save mchirico/c93d47541996321d8696 to your computer and use it in GitHub Desktop.
Swift NSXML Parser ... quick and dirty
//
// MontcoGet.swift
// MontCoEMS
//
// Created by Mike Chirico on 12/4/15.
// Copyright © 2015 Mike Chirico. All rights reserved.
//
//http://webapp.montcopa.org/eoc/cadinfo/livecadrss.asp
import UIKit
class Montco: NSObject, NSXMLParserDelegate {
struct TableCols {
var title: String
var desc: String
}
var content:String = ""
var table:[TableCols]=[]
var tmp:TableCols = TableCols(title: "", desc: "")
var flg:Bool=false
func mystart() {
table.removeAll()
let url = NSURL(string: "http://webapp.montcopa.org/eoc/cadinfo/livecadrss.asp")
let xmlParser = NSXMLParser(contentsOfURL: url!)
xmlParser!.delegate = self
xmlParser!.parse()
// Remove heading
if table.count > 1 {
table.removeAtIndex(0)
}
}
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
if elementName == "title" {
content=""
}
if elementName == "description" {
content=""
}
//print("Element's name is \(elementName)")
//desc = elementName
//print("Element's attributes are \(attributeDict)")
}
func parser(parser: NSXMLParser, foundCharacters string: String) {
content += string
}
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if elementName == "title" {
// print(content)
tmp.title = content.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
}
if elementName == "description" {
// print(content)
tmp.desc = content.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
if flg == true {
if tmp.desc.rangeOfString("CHELTENHAM") != nil {
table.append(tmp)
}
} else {
table.append(tmp)
}
}
//print("end: \(elementName)")
}
func readAlerts() {
let url:String = "http://webapp.montcopa.org/eoc/cadinfo/livecadrss.asp"
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "GET"
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
print("response = \(response)\n\n\n\n\n")
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment