在字符串中存储XML元素

时间:2015-07-20 20:52:48

标签: xml swift

我正在使用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,所以这让我感到困惑。

1 个答案:

答案 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?