我编写了一个代码,该代码从xml
Feed获取rss
数据,然后将NSDATA
类型转换为string
并替换string
中的html标记这使得xml
可读,然后将其转换回NSDATA
类型。
我面临的问题是在更换字符串之前的项目数量,之后是不同的。
在替换html标签之前,xml项目计数是388但是之后它是182
我该如何解决这个问题?
包含减少项目的代码计数错误:
import UIKit
struct Apps {
var name : String!
var img : String!
}
class clipsTableViewController: UITableViewController {
var tableData = [Apps]()
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "http://razavitv.aqr.ir/index/rss/2")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding) as! String
let processedString = (dataString as NSString).stringByReplacingOccurrencesOfString("<![CDATA[", withString: "").stringByReplacingOccurrencesOfString("]]>", withString: "") as String
let data: NSData = processedString.dataUsingEncoding(NSUTF8StringEncoding)!
let xml = SWXMLHash.parse(data)
//one root element
let count = xml["rss"]["channel"]["item"].all.count
print(count)
for var i = 0; i < count; i++ {
let appName = xml["rss"]["channel"]["item"][i]["title"].element!.text!
let appUrl = xml["rss"]["channel"]["item"][i]["description"]["img"].element!.attributes["src"]
let ap = Apps(name: appName , img : appUrl)
self.tableData.append(ap)
self.tableView.reloadData()
}
}
task.resume()
}
答案 0 :(得分:1)
试一下
<!\[CDATA[
原因:您已删除&#34; ]]
&#34;从一开始,但你只删除了&#34; ]]
&#34;最后,由于字符&#39;&#39;,标签不匹配,所以只需更改&#34; ]]>
&#34;到&#34; <Objective-C-extensions>
&#34;。这将按照您的逻辑工作。