我正在尝试解析soap api的输出。
<string xmlns="webservices.fmx.bz/">
{ "ui": [ { "t": "1234", "vid": "123", "cn": "Company Name" } ] }
</string>
我一直在手动解析它
var responseString = response.result.value?.stringByReplacingOccurrencesOfString("\r\n", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString("<string xmlns=\"webservices.fmx.bz/\">", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString("<?xml version=\"1.0\" encoding=\"utf-8\"?>", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString("</string>", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString("\"", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString( "{ ui: [ { ", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString( "} ]}", withString: "")
responseString = responseString?.stringByReplacingOccurrencesOfString( " ", withString: " ")
var myStringArr = responseString?.componentsSeparatedByString(",")
var companyNameStr = myStringArr![2].stringByReplacingOccurrencesOfString("cn:", withString: "")
companyNameStr = companyNameStr.stringByReplacingOccurrencesOfString("&", withString: "&")
companyNameStr = companyNameStr.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
NSUserDefaults.standardUserDefaults().setObject(companyNameStr, forKey: "companyName")
谁知道一个更简单的解决方案或库,我可以使用?
3条答案
按热度按时间7fhtutme1#
找到了方法必须清理数据字符串,然后转换回nsdata
wlsrxk512#
iOS提供了一个内置的JSON解析器,它可以完全解析JSON字符串,并构建一个表示JSON结构的字典。
但是,iOS没有为XML提供类似的方法。iOS提供的NSXMLParser使用“事件驱动”模型进行解析。ie:解析器将事件通知给委托,我们的工作是根据元素构建一个结构。
JSON方法相对更简单,因为我们可以简单地查询所需对象的解析数据结构。
然而,我发现有一个库在Swift中为XML执行类似的活动。你可以找到here。
请检查它,您应该能够解析XML并使用它构建解析的对象。
aor9mmx13#