【发布时间】:2016-01-06 07:35:32
【问题描述】:
我编写了一个代码,它从rss 提要中获取xml 数据,然后将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()
}
【问题讨论】:
标签: html ios swift replace tags