Swift: определение схожего содержимого в HTML - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь определить похожее содержимое между несколькими наборами HTML-кода и опустить те, которые похожи.Например, мне даны два следующих набора HTML-кода:

<code>//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
// Второй наборСпасибо и С уважением,
Тони Старк
Stark Industries

По сути, оба набора HTML-кода печатают одинаковое содержимое при отображении на UIWebView, но с другим шрифтом,и поэтому я хочу опустить один из них.При загрузке в webView они пишутся примерно так, с хорошо написанными разрывами строк:

Thanks & Regards,
Tony Stark
Stark Industries

Я использую Kanna при разборе HTML, ищите content HTMLи проверьте, является ли содержимое идентичным.К сожалению, некоторые случаи до сих пор проскальзывают, как те, что выше.Код и результаты следующие:

//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, но дал очень похожие результаты.У кого-нибудь есть совет?

...