Swift:识别HTML中的相似内容

时间:2019-05-08 03:38:38

标签: html swift kanna

我正在尝试在几组HTML代码之间标识相似的内容,并省略相似的内容。例如,为我提供了以下两组HTML代码:

//First set
<div class="x-apple-signature"><pre style="font-family: 'SFNSText','Helvetica Neue', Helvetica, sans-serif; font-size: 15px; white-space: pre-wrap; word-wrap: break-word;" data-mce-style="font-family: 'SFNSText','Helvetica Neue', Helvetica, sans-serif; font-size: 15px; white-space: pre-wrap; word-wrap: break-word;">Thanks &amp; Regards,
Tony Stark
Stark Industries</pre></div>

//Second set
<div class="x-apple-signature">Thanks &amp; Regards,<br>Tony Stark<br>Stark Industries</div>

本质上,两组HTML代码在UIWebView上显示时都打印完全相同的内容,但是使用不同的字体,因此我想省略其中的一组。当加载到webView中时,它们的写法类似,但换行符写得很好:

Thanks & Regards,
Tony Stark
Stark Industries

我在HTML解析中使用Kanna,查找HTML的content,然后检查内容是否相同。不幸的是,像上述情况一样,某些情况仍然会发生。代码和结果如下:

//Check for identical HTML contents
var dictionary = [String: HTMLObject]()
allHtml.forEach { (html) in

let doc = try? HTML(html: html, encoding: .utf8)
    if var content = doc?.body?.content {
        content = content.trimmingCharacters(in: .whitespacesAndNewlines)

        if dictionary[content] == nil {
            dictionary[content] = html
        } else {
            allHtml.removeObject(html)
        }
    }
} 

//Results of the printed content from the above HTML

//First set
Thanks & Regards,\r\nTony Stark\r\nStark Industries

//Second set
Thanks & Regards,Tony StarkStark Industries

我也尝试过doc?.body?.text,但结果却非常相似。有人有什么建议吗?

0 个答案:

没有答案