我使用SWXMLHash具有以下代码 - 但XML解析器似乎无法处理它。我已经检查了URL,以确保它返回的数据:无法使用SWXMLHash从Webservice解析XML
let baseUrl = "http://apps.hha.co.uk/mis/Api/getlivesensors.aspx?key=6fb21537-fb4e-4fe4-b07a-d8d68567c9d1"
var request = URLRequest(url: NSURL(string: baseUrl)! as URL)
let session = URLSession.shared
request.httpMethod = "GET"
//var err: NSError?
let task = session.dataTask(with: request as URLRequest) {
(data, response, error) in
if data == nil {
print("dataTaskWithRequest error: \(error)")
return
}
let xml = SWXMLHash.parse(data!)
if (xml["Sensors"]["Sensor"]["Name"].element?.text) != nil
//if (xml["Sensors"]["Sensor"]["Name"].element?.text) != nil
{
self.sensors.add(xml["Sensors"]["Sensor"]["Name"].element?.text as Any)
}
DispatchQueue.main.async(execute : {
print(self.sensors)
})
}
task.resume()
// but obviously don't try to use it here here
我从网址,以获取XML是这样的(标记关闭了 - 我只是还没有包括它们):
<Sensors>
<Sensor>
<ID>12</ID>
<Name>EFM W.level</Name>
<Series>Level</Series>
<Unit>m</Unit>
<Values>
<Value CreatedOn="2017-01-08T13:50:00" Value="0.69"/>
<Value CreatedOn="2017-01-08T14:00:00" Value="0.72"/>
<Value CreatedOn="2017-01-08T14:10:00" Value="0.77"/>
<Value CreatedOn="2017-01-08T14:20:00" Value="0.82"/>
<Value CreatedOn="2017-01-08T14:30:00" Value="0.87"/>
piece by piece:'xml [“Sensors”]'returns something?如果是,那么'xml [“Sensors”] [“Sensor”]?如果是,'xml [“Sensors”] [“Sensor”] [“Name”]'? etc. – Larme
解析后,xml变量没有任何数据。 – HillInHarwich
这是我在尝试打印XML值时得到的结果:打印xml描述: 表达式生成错误:error:/var/folders/z0/gvxkyn_x3d18qbkml14_wngc0000gn/T/./lldb/42932/expr33.swift:1 :75:error:'XMLIndexer'不是'SWXMLHash'的成员类型 Swift._DebuggerSupport.stringForPrintObject(Swift.UnsafePointer(bitPattern:0x1045a4290)!. pointee) –
HillInHarwich