我正在使用SWXMLHash来解析XML网页
let xml = SWXMLHash.parse(data)
println(xml["root"]["schedule"]["date"].element?.text)
这会成功打印出我想要的元素。但是,我似乎无法将其存储在字符串中。
我声明了字符串
var getXmlItem: String
我尝试将其设置为我想要的XML元素:
getXmlItem = xml["root"]["schedule"]["date"].element?.text
但这给了我错误:
可选类型'String?'的值没有打开;你的意思是用'!'还是'?'?
这不是设置它等于XML的方法吗?我还在学习Swift,所以这让我感到困惑。
答案 0 :(得分:0)
Swift在可以为null的值和不能为null的值之间采用强制线。我认为text
在SWXMLHash框架中是可选的。试试这个:
getXmlItem = xml["root"]["schedule"]["date"].element?.text!
您需要确保text
不是零。
另一种方法是将getXmlItem
声明为可选字符串:
var getXmlItem : String?
我更喜欢Swift自动推断类型:
var getXmlItem = xml["root"]["schedule"]["date"].element?.text
// getXmlItem is now String?