XMLPullitic 3.0.0

XMLPullitic 3.0.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Oct 2019
SPMSupports SPM

Maintained by Hironori Ichimiya.



  • By
  • Hironori Ichimiya

XMLPullitic

CI Status Version License Platform Carthage compatible

Swifty XML pull parser

Usage

let xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><foo>Hello World!</foo>"
if let parser = XMLPullParser(string: xml) {
    do {
        parsing: while true {
            switch try parser.next() {
            case .startDocument:
                print("start document")
            case .startElement(let name, _, _):
                print("start element: \(name)")
            case .characters(let text):
                print("text: \(text)")
            case .endElement(let name, _):
                print("end element: \(name)")
            case .endDocument:
                print("end document")
                break parsing
            }
        }
    } catch let error {
        print("error: \(error)")
    }
}

Thanks to swift's pattern matching feature, you can easily handle start of elements like this:

let event = try parser.next()
switch event {
case .startElement("foo", _, _):
    // handle start of <foo>
    print("foo: \(event)")
case .startElement("bar", _, _):
    // handle start of <bar>
    print("bar: \(event)")
case .startElement("baz", "http://example.com/ns/1.0"?, let element):
    // handle start of <baz>, whose namespace URI is http://example.com/ns/1.0
    // note: you must set parser.shouldProcessNamespaces true to handle namespaces
  
    // you can get attributes from XmlElement object
    print(element.attributes["xyz"])
case .startElement(_, _, _):
    // handle start of other elements
    print("other: \(event)")
default:
    break
}

Requirements

  • iOS 8.0+
  • tvOS 9.0+
  • Swift 5.1+

Installation

CocoaPods

XMLPullitic is available through CocoaPods. To install it, simply add the following lines to your Podfile:

use_frameworks!
pod "XMLPullitic", '~> 3.0'

Carthage

XMLPullitic is available through Carthage. To install it, simply add the following line to your Cartfile:

github "hironytic/XMLPullitic" ~> 3.0

Author

Hironori Ichimiya, [email protected]

License

XMLPullitic is available under the MIT license. See the LICENSE file for more info.