更换字符串后获取错误的项目数

时间:2016-01-06 07:35:32

标签: html ios swift replace tags

我编写了一个代码,该代码从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()
    }

1 个答案:

答案 0 :(得分:1)

试一下

<!\[CDATA[

原因:您已删除&#34; ]]&#34;从一开始,但你只删除了&#34; ]]&#34;最后,由于字符&#39;&#39;,标签不匹配,所以只需更改&#34; ]]>&#34;到&#34; <Objective-C-extensions>&#34;。这将按照您的逻辑工作。