XMLPullitic
Swift XML解析器
用法
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)")
}
}
利用Swift的模式匹配特性,您可以轻松处理元素的开始部分,如下所示
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
}
需求
- iOS 8.0+
- tvOS 9.0+
- Swift 5.1+
安装
CocoaPods
XMLPullitic 可通过 CocoaPods 获取。安装它,只需将以下行添加到您的 Podfile 文件中
use_frameworks!
pod "XMLPullitic", '~> 3.0'
Carthage
XMLPullitic 可通过 Carthage 获取。安装它,只需将以下行添加到您的 Cartfile 文件中
github "hironytic/XMLPullitic" ~> 3.0
作者
Ichimiya Hironori,[email protected]
许可
XMLPullitic 在 MIT 许可下提供。更多信息请参阅 LICENSE 文件。