Comment puis-je parse XML web service Swift?
Je ne sais pas comment analyser dans mon code ci-dessous..
Quelqu'un peut-il
func callService(usr: String, pwdCode: String) {
let url = NSURL(string: "http://inspect.dev.cbre.eu/SyncServices/api/jobmanagement/PlusContactAuthenticationPost")
var xmlParse:NSString = ""
var data : NSData!
let request = NSMutableURLRequest(URL: url!)
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
let dictionary = ["email": usr, "userPwd": pwdCode]
var error: NSError?
if let body = NSJSONSerialization.dataWithJSONObject(dictionary, options: nil, error: &error) {
request.HTTPBody = body
} else {
println("JSON error: \(error)")
}
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
(data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
//xmlParse=NSString(data: data, encoding: NSUTF8StringEncoding)!
//let data = (xmlParse as NSString).dataUsingEncoding(NSUTF8StringEncoding)
//NSXMLParser(data : NSData)
//xmlParse=NSString(data: data, encoding: NSUTF8StringEncoding)!
//xmlParse=response
//println(xmlParse)
}
task.resume()
}
BTW, c'est un peu inhabituel de voir JSON demande et de la réponse XML. Êtes-vous sûr de cela? Aussi, ne le
oui, il est ...mais nous avons besoin d'appeler le tiers webservice de notre application..donc on ne peut pas changer it..@rob je suis coller moi la réponse xml ci-dessous..Pouvez-vous s'il vous plaît vérifier ce qui pourrait être fait?
Ma réponse Xml sera comme ceci: <?xml version="1.0" encoding="utf-8"?><serviceresult><succès>false</succès><resultmessage>l'Utilisateur n'est pas trouvé dans le système.</resultmessage></serviceresult>
Découvrez mon projet pour l'analyse de XML facilement dans Swift: github.com/borchero/WebParsing
data
retourné ressembler XML valide?oui, il est ...mais nous avons besoin d'appeler le tiers webservice de notre application..donc on ne peut pas changer it..@rob je suis coller moi la réponse xml ci-dessous..Pouvez-vous s'il vous plaît vérifier ce qui pourrait être fait?
Ma réponse Xml sera comme ceci: <?xml version="1.0" encoding="utf-8"?><serviceresult><succès>false</succès><resultmessage>l'Utilisateur n'est pas trouvé dans le système.</resultmessage></serviceresult>
Découvrez mon projet pour l'analyse de XML facilement dans Swift: github.com/borchero/WebParsing
OriginalL'auteur dhaval shah | 2014-11-23
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser le
NSXMLParser
dans votre gestionnaire d'achèvement pour la requête:Clairement, le ci-dessus suppose que vous avez (un) définie de votre vue-contrôleur pour se conformer à
NSXMLParserDelegate
et (b) ont mis en œuvre laNSXMLParserDelegate
méthodes, par exemple, quelque chose comme:merci @Rob...il a résolu mon problème..Juste une question..quand je suis à l'impression de cette valeur sur ma régulier de la fonction "callService' il me donne " nil " ..comment puis-je accéder à elementValue dans ma méthode?
Eh bien, je
nil
laelementValue
(de sorte quefoundCharacters
ne seront ajout de caractères entre les<success>
et</success>
tags). Si vous voulez la sauver, vous pourrait théoriquement créer une autre variable, et d'enregistrer une copie deelementValue
à l'intérieur queif elementName == success
déclaration dedidEndElement
. (Remarque, ne pas, il suffit de retirer la ligne qui définitelementValue
ànil
, qui va briser ma routine: Enregistrer la valeur comme je l'ai souligné ci-dessus.) Mais je ne sais pas pourquoi vous vous sentiriez comme vous avez besoin pour enregistrer la valeur, comme lesuccess
variable capte sitrue
a été trouvé ou pas...Okey merci rob..
salut rob.U peut me donner ur adresse email..je voulais donner mon code entier pour vous et de vérifier si je suis absent quelque chose ou pas..Parce que quand je suis en déclarant que le "succès" comme une variable globale que cela me donne un résultat wronge
OriginalL'auteur Rob
Pour quiconque cherche toujours, voici le code que j'ai utilisé qui fonctionne très bien pour convertir le fichier xml de la réponse dans des Dictionnaires/Tableaux, grâce à la SWXMLHash classe...
MIS À JOUR SWIFT 2.0
Merci beaucoup 🙂
La solution parfaite! Une seule petite chose: ajouter des "!" après que les données: laissez-xml = SWXMLHash.parse(data!)
OriginalL'auteur Tim S
J'ai utilisé la Classe Créée ci-dessous Pour obtenir Dictionnaire De données XML.
https://github.com/Bhaavik/BDXmlParser
Vous avez besoin D'ajouter que la classe
et il suffit d'appeler ci-Dessous la Fonction for Dictionnaire réponse
Et là, Vous allez à un dictionnaire. 🙂
OriginalL'auteur Bhavik