Ios 无法使用SWIFT 2从附件标记rss xml中提取url值

Ios 无法使用SWIFT 2从附件标记rss xml中提取url值,ios,xml,xcode,swift2,rss,Ios,Xml,Xcode,Swift2,Rss,我在RSS提要中提取附件标记的url内容时遇到困难。我正在开发Xcode 7 Swift 2 我的NSXMLDelegate解析代码如下: func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) { eName

我在RSS提要中提取附件标记的url内容时遇到困难。我正在开发Xcode 7 Swift 2

我的NSXMLDelegate解析代码如下:

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    eName = elementName
    if elementName == "item" {
        postTitle = String()
        postLink = String()
        postDate = String()
        postImageUrl = String()
    }
}
下面是负责解析RSS XML提要的相关源代码

func parser(parser: NSXMLParser, foundCharacters string: String) {
    let data = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    if (!data.isEmpty) {
        print("eName Start")
        print(eName)
        print(data,"DATAAAA")
        print("eName END")
        if eName == "title" {
            postTitle += data//TEST OK
        } else if eName == "link" {
            postLink += data//TEST OK
        } else if eName == "pubDate" {

            postDate += data//TEST OK
        }
        else if eName == "enclosure"{
            print(data)//THIS IS EMPTY WHY !?
            print("enc details")
            postImageUrl += data
        }
    }
}
如上所述,我能够从RSS提要中提取“title”、“pubDate”和“link”标记,但不能提取enclosure标记。 当我试图在检测到“存储模块”时转储数据时,返回的数据是空的

我怀疑问题在于这行代码没有正确过滤RSS对象

let data = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
RSS提要的来源是:www.securitymagazine.com/RSS/15

有人能对此提供一些见解吗?我非常感激

RSS中的“enclosure”元素如下所示:

<enclosure url="http://www.securitymagazine.com/ext/resources/SEC/2016/0616/Boschdata.jpg?1467317413" type="image/jpeg" length="280480"/>
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    eName = elementName
    switch elementName {
    case "item":
        postTitle = String()
        postLink = String()
        postDate = String()
        postImageUrl = String()
    case "enclosure":
        if let urlString = attributeDict["url"] {
            //...use `urlString` appropriately
            print(urlString)
            print("enc details")
            postImageUrl += urlString
        } else {
            print("malformed element: enclosure without url attribute")
        }
    //...cases for other element name
    default:
        //...
        break
    }
}
RSS中的“enclosure”元素如下所示:

<enclosure url="http://www.securitymagazine.com/ext/resources/SEC/2016/0616/Boschdata.jpg?1467317413" type="image/jpeg" length="280480"/>
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    eName = elementName
    switch elementName {
    case "item":
        postTitle = String()
        postLink = String()
        postDate = String()
        postImageUrl = String()
    case "enclosure":
        if let urlString = attributeDict["url"] {
            //...use `urlString` appropriately
            print(urlString)
            print("enc details")
            postImageUrl += urlString
        } else {
            print("malformed element: enclosure without url attribute")
        }
    //...cases for other element name
    default:
        //...
        break
    }
}

我试图用以下代码替换rss对象的筛选:let data=string.StringByTrimmingCharactersSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()),但它甚至无法检测到附件标记。我编辑了我的问题以反映您关于ename的问题的答案。它是一个字符串,包含RSS XML提要中的元素。这允许代码跟踪XMLi中试图用以下代码替换rss对象筛选的每个项目:let data=string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())它甚至无法检测到附件tagI编辑了我的问题以反映您关于ename的问题的答案。它是一个字符串,包含RSS XML提要中的元素。这允许代码跟踪XML中的每个项目