简体   繁体   English

如何检查解析的rss变量是否包含swift 2中的确切元素

[英]how to check if parsed rss variable contain exact element in swift 2

I have a rss link which I parse it using SWXMLHash and then I use it's elements like below but when an element is missing in the rss I get below error message! 我有一个rss链接,我使用SWXMLHash对其进行了解析,然后使用如下所示的元素,但是当rss中缺少某个元素时,我得到以下错误消息! how can I check if rss contain for example source element if it doesn't contain it put " " in the variable ! 我如何检查rss是否包含例如源元素(如果不包含源元素),将其放在变量中!

code : 代码: 在此处输入图片说明

UPDATE : Fixed Code : 更新:固定代码:

let count = xml["rss"]["channel"]["item"].all.count

    var Name = ""
    var Image = ""
    var Link = ""

    for var index = 0; index < count; index++ {
        Name = xml["rss"]["channel"]["item"][index]["title"].element!.text!
        if let element = xml["rss"]["channel"]["item"][index]["source"].element?.attributes["url"] as String? {
            Image = element
            Link = element
        } else {
            print("Blank")
            Image = ""
            Link = ""
        }

        let ap = pic(name: Name ,img : Image, link : Link)
        self.tableData.append(ap)

        //for reducing delay of loading table view data
        dispatch_async(dispatch_get_main_queue(), {
        self.tableView.reloadData()
        return
        })
    }

you should check for optional where you have force unwrap element, if it has element take value else put "" 您应该在有强制拆包元素的地方检查是否为可选,如果它具有元素取值,否则放入“”

let count = xml["rss"]["channel"]["item"].all.count

let arrSource:NSMutableArray = []

for var index = 0; index < count; index++ {
    if let element = xml["rss"]["channel"]["item"][index]["source"].element?.attributes["url"] as String? {
        print("Element \(element)")
        arrSource.addObject(element)
    } else {
       print("Blank")
    }
}
print("Count \(arrSource.count) Arr \(arrSource)")

This works when source or url is empty and prints Blank if one of them are empty 当源或URL为空时有效,如果其中之一为空,则打印空白

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM