Ios 无法使用SWIFT 2从附件标记rss xml中提取url值
我在RSS提要中提取附件标记的url内容时遇到困难。我正在开发Xcode 7 Swift 2 我的NSXMLDelegate解析代码如下: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
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中的每个项目