在 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()
有什么建议吗?
您可以使用 NSString
的 stringByReplacingOccurrencesOfString
功能:
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)
我想用 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()
有什么建议吗?
您可以使用 NSString
的 stringByReplacingOccurrencesOfString
功能:
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)