如何在Swift中解析XML Web服务?

前端之家收集整理的这篇文章主要介绍了如何在Swift中解析XML Web服务?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不知道如何在下面的代码解析..
有人可以
  1. func callService(usr: String,pwdCode: String) {
  2.  
  3. let url = NSURL(string: "http://inspect.dev.cbre.eu/SyncServices/api/jobmanagement/PlusContactAuthenticationPost")
  4. var xmlParse:NSString = ""
  5. var data : NSData!
  6. let request = NSMutableURLRequest(URL: url!)
  7. request.setValue("application/json; charset=utf-8",forHTTPHeaderField: "Content-Type")
  8. request.HTTPMethod = "POST"
  9. let dictionary = ["email": usr,"userPwd": pwdCode]
  10. var error: NSError?
  11. if let body = NSJSONSerialization.dataWithJSONObject(dictionary,options: nil,error: &error) {
  12. request.HTTPBody = body
  13. } else {
  14. println("JSON error: \(error)")
  15. }
  16.  
  17. let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
  18. (data,response,error) in
  19. println(NSString(data: data,encoding: NSUTF8StringEncoding))
  20.  
  21. // xmlParse=NSString(data: data,encoding: NSUTF8StringEncoding)!
  22. // let data = (xmlParse as NSString).dataUsingEncoding(NSUTF8StringEncoding)
  23. // NSXMLParser(data : NSData)
  24.  
  25. // xmlParse=NSString(data: data,encoding: NSUTF8StringEncoding)!
  26. // xmlParse=response
  27. // println(xmlParse)
  28. }
  29. task.resume()
  30.  
  31. }
您应该在请求的完成处理程序中使用NSXMLParser:
  1. let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
  2. (data,error) in
  3.  
  4. if data == nil {
  5. println("dataTaskWithRequest error: \(error)")
  6. return
  7. }
  8.  
  9. let parser = NSXMLParser(data: data)
  10. parser.delegate = self
  11. parser.parse()
  12.  
  13. // you can now check the value of the `success` variable here
  14. }
  15. task.resume()
  16.  
  17. // but obvIoUsly don't try to use it here here

显然,上述假定您(a)定义了您的视图控制器以符合NSXMLParserDelegate和(b)已实现NSXMLParserDelegate方法,例如就像是:

  1. var elementValue: String?
  2. var success = false
  3.  
  4. func parser(parser: NSXMLParser,didStartElement elementName: String,namespaceURI: String?,qualifiedName qName: String?,attributes attributeDict: [NSObject : AnyObject]) {
  5. if elementName == "success" {
  6. elementValue = String()
  7. }
  8. }
  9.  
  10. func parser(parser: NSXMLParser,foundCharacters string: String?) {
  11. if elementValue != nil {
  12. elementValue! += string
  13. }
  14. }
  15.  
  16. func parser(parser: NSXMLParser,didEndElement elementName: String,qualifiedName qName: String?) {
  17. if elementName == "success" {
  18. if elementValue == "true" {
  19. success = true
  20. }
  21. elementValue = nil
  22. }
  23. }
  24.  
  25. func parser(parser: NSXMLParser,parseErrorOccurred parseError: NSError) {
  26. println("parseErrorOccurred: \(parseError)")
  27. }

猜你在找的Swift相关文章