如何在Ios中解析Web服务的响应?

问题描述 投票:-2回答:1

如何在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响应,但是如何解析此响应并获取数组中的值?

Here is my tried code

ios parsing swift4 alamofire
1个回答
1
投票

您可以使用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)

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.