在 XML 字符串中用 null 替换 html 标签

Replacing html tag with null in XML string

我想用 null 替换 xml 字符串中的 <![CDATA[ 标签,但我不知道如何在 swift 2.0 [=18] 中使用正则表达式查找或获取此标签=]

我的 xml 字符串类似于:

let xmlvar = "<description>" +
            "<![CDATA[<img data-toggle='tooltip' src='uploads/posts/thumbnails/92-9-6-khatami-5-52-on.jpg' alt='123'/><span>123</span>]]>" +
            "</description>

我需要从 xmlvar

中删除 <![CDATA[ 和它的结尾部分 ]]

更新:

如何对来自 rss 提要的 xml 数据使用正则表达式? 我正面临 xml is not convertible to NSString 错误

这是我的代码:

let url = NSURL(string: "http://razavitv.aqr.ir/index/rss/2") 
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in               
    let xml = SWXMLHash.parse(data!)
    let processedString = (xml as NSString).stringByReplacingOccurrencesOfString("<![CDATA[", withString: "").stringByReplacingOccurrencesOfString("]]", withString: "") as String                
    let appName = xml["rss"]["channel"]["item"][0]["title"].element!.text!
    let appUrl = xml["rss"]["channel"]["item"][0]["description"]["img"].element!.attributes["src"]
    let ap = Apps(name: appName , img : appUrl)
    self.tableData.append(ap)
    self.tableView.reloadData()   
}
task.resume()

有什么建议吗?

您可以使用 NSStringstringByReplacingOccurrencesOfString 功能:

let processedString = (xmlvar as NSString).stringByReplacingOccurrencesOfString("<![CDATA[", withString: "").stringByReplacingOccurrencesOfString("]]", withString: "") as String

您转换为 NSString,应用两个替换,然后返回 String

或者您可以使用正则表达式:

// we know for sure the regex is a valid string, thus the forced try, otherwise forced stuff is not recommended
let regex = try! NSRegularExpression(pattern: "\<\!\[CDATA\[|\]\]", options: NSRegularExpressionOptions.CaseInsensitive)
let len = xmlvar.lengthOfBytesUsingEncoding(NSStringEncoding(NSUTF8StringEncoding))
let processedString = regex.stringByReplacingMatchesInString(xmlvar, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, len), withTemplate: "")
print(processedString)