gpt4 book ai didi

ios - 无法使用 SWIFT 2 从附件标签 rss xml 中提取 url 值

转载 作者:行者123 更新时间:2023-11-28 21:25:45 26 4
gpt4 key购买 nike

我在提取 RSS Feed 中附件标签的 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 Feed 中提取“title”、“pubDate”和“link”标签,但不能提取附件标签。当我试图在检测到“外壳”时转储数据时,返回的数据为空。

我怀疑问题在于我没有正确过滤 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"/>

url 作为元素的属性包含在内,而不是开始标记后的字符(#text)数据。您可以在 parser(_:didStartElement:...) 方法中访问元素属性。所以,你需要像这样修改方法:

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
}
}

关于ios - 无法使用 SWIFT 2 从附件标签 rss xml 中提取 url 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com