A lightweight XMLParser for assembling and parsing XML values written for iOS 8+ in Swift 2.
XMLParser lets you convert a pure Swift dictionary into XML string and vice versa.
###Cocoa Pods
pod 'XMLParser', '~> 1.0'
####Parsing an XML string from a Dictionary
let body = [
"request" : [
"meta" : [
"type" : "getOrder",
"date" : "2015-08-29 12:00:00",
"device_name" : "iPhone 6 Plus",
"device_os_version" : "iOS 9"
]
],
"encryption" : [
"type" : "RSA"
]
]
let header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
let result = XMLParser.sharedParser.encode(body, header: header)
print(result)
####Result
<?xml version="1.0" encoding="UTF-8"?>
<encryption>
<type>RSA</type>
</encryption>
<request>
<meta>
<type>getOrder</type>
<device_os_version>iOS 9</device_os_version>
<date>2015-08-29 12:00:00</date>
<device_name>iPhone 6 Plus</device_name>
</meta>
</request>
####Associated tags
E.g. <td class='achievements'>0</td>
let data = [
"tr" : [
XMLTag(header: "td", name: "class", value: "num") : 1,
XMLTag(header: "td", name: "class", value: "achievments") : 0,
XMLTag(header: "td", name: "class", value: "sum") : 205
]
]
let result = XMLParser.sharedParser.encode(data)
print(result)
####Result
<tr>
<td class='achievments'>0</td>
<td class='num'>1</td>
<td class='sum'>205</td>
</tr>
==========
####Extracting data from an XML converted string
let convertedString = "<request><meta><type>getOrder</type><date>2015-08-29 12:00:00</date><device_name>iPhone 6 Plus</device_name><device_os_version>iOS 9</device_os_version></meta></request><encryption><type>RSA</type></encryption>"
let result = XMLParser.sharedParser.decode(convertedString)
print(result)
####Result
[
type: [getOrder, RSA],
device_os_version: [iOS 9],
date: [2015-08-29 12:00:00],
device_name: [iPhone 6 Plus]
]
Eugene Mozharovsky (@DottieYottie)