我有一个HTML字符串,想要更改它们内部的元素,img
标记样式为width = 100%和height auto,这样当我将它们传递到Web视图时,图像就可以适合到超级视图布局。
HTML
<img alt=\"\" src=\"https://my.domain.com/img/ckeditor/55de838089041.jpg\" style=\"width:700px\" />
夫特
let doc : TFHpple = TFHpple(HTMLData: htmlText.dataUsingEncoding(NSUTF8StringEncoding))
for img: AnyObject in doc.searchWithXPathQuery("//img") {
let imgElement : TFHppleElement = img as! TFHppleElement
let attributes : [NSObject : AnyObject] = imgElement.attributes
XCGLogger.defaultInstance().debug("attributes: \(attributes)")
for eachElement : (NSObject, AnyObject) in attributes {
if eachElement.0 == "style" {
var elementText : String = eachElement.1 as! String
eachElement.1 = "width:'100%',height:'auto'"
}
}
}
但是每个元素1都不可编辑,我可以使用TFHpple 1这样做,还是必须尝试其他方式。
答案 0 :(得分:1)
面对类似的问题,我编辑了我从HMTL响应中得到的整个字符串,所以你可以尝试这样的事情: -
let task = try session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
guard data != nil else {
print("no data found: \(error)")
self.displayServerAlert()
return
}
print("Response: \(response)")
var strData:String = NSString(data: data!, encoding: NSUTF8StringEncoding) as! String
print("Body: \(strData)")
var replaceStr = strData.stringByReplacingOccurrencesOfString("style=\"width:700px\", withString: "style=\"width:'100%',height:'auto'", options: NSStringCompareOptions.LiteralSearch, range: nil)
print(replaceStr)
let strtoData = replaceStr.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
self.parseData(strtoData!)
parseData是fucn我根据需要发送数据解析的地方.. !!希望这会有所帮助.. !!