如何在Ios中解析Web服务的响应?
这是我的网络服务的响应
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<string>4300</string>
<string>4400</string>
</ArrayOfString>
我已经知道如何使用alamofire解析json响应,但是如何解析此响应并获取数组中的值?
您可以使用XMLParser
进行XML解析。
下面是Swift中的代码:
class MyParser : NSObject, XMLParserDelegate{
var elementName: String = String()
var arrStr: [String] = []
func parseXML(xmlString : String){
if let xmlData = xmlString.data(using: .utf8){
let parser = XMLParser(data: xmlData)
parser.delegate = self;
parser.parse()
}
}
// MARK:- XMLParserDelegate callbacks
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
self.elementName = elementName
}
func parser(_ parser: XMLParser, foundCharacters string: String) {
let data = string.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
if (!data.isEmpty) {
if self.elementName == "string" {
arrStr.append(data)
}
}
}
}
let xmlString = "<ArrayOfString xmlns:xsd=\"http://www.w3.org.2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org.2001/XMLSchema-instance\" xmlns=\"htp://tempuri.org\"><string>4300</string><string>4200</string></ArrayOfString>"
let parse = MyParser()
parse.parseXML(xmlString: xmlString)
print(parse.arrStr)
希望这会有所帮助。