How to convert XML to objects in Swift?
How can I convert request responses in XML format to objects in Swift, just like ObjectMapper does with JSON to objects?
2
Author: Tiago Amaral, 2016-07-08
1 answers
You need to implement NSXMLParserDelegate
:
Declare two global variables
var xmlParser: NSXMLParser!
var currentContentElement: NSMutableString!
Then in the method that receives the SOAP request response you call xmlParser
xmlParser = NSXMLParser(data: responseData)
xmlParser.delegate = self
xmlParser.parse()
Implementation of NSXMLParserDelegate
:
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
self.currentContentElement = NSMutableString()
}
func parser(parser: NSXMLParser, foundCharacters string: String) {
self.currentContentElement.appendString(string)
}
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
switch elementName {
case "CAMPOXXXX":
let variavelxxx = currentContentElement.integerValue
break
default:
break
}
self.currentContentElement = nil
}
func parserDidEndDocument(parser: NSXMLParser) {
}
Is very simple in the didEndElement
method you take the values you need and throw it into your object.
Hope I helped you =D
0
Author: Victor Cechinel, 2017-05-24 18:20:05