我使用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