Swift:解析HTML并保留新行

时间:2019-03-14 03:43:57

标签: swift

为我提供了以下HTML代码,需要将其解析为纯文本。我曾尝试使用诸如SwiftSoup和Kanna之类的HTML解析器,但是两者都给了我一些而不是那么理想的结果,即,折线没有正确保存。

//HTML that needs to be parsed
<html>
 <head></head>
 <body>
  <div dir="ltr">
   <div dir="ltr">
    <div dir="ltr">
     <div dir="ltr">
      <div dir="ltr">
       <div>
        <a href="https://www.google.com">https://www.google.com</a>
        <br>
       </div>
      <div dir="ltr">
       <br clear="all">
       <div>
        <div dir="ltr" class="gmail_signature">
         <div dir="ltr">
          <font><font><font><font>Yours Sincerely</font></font></font></font>
          <div>
           <font><font><font><font>Tony Stark</font></font></font></font>
          </div>
          <div>
           <font><font><font><font>CEO, Stark Industries</font></font></font></font>
          </div>
         </div>
        </div>
       </div>
      </div>
     </div>
    </div>
   </div>
  </div> 
 </body>
</html>


//HTML Parsers 
//SwiftSoup
do {
    let doc = try SwiftSoup.parse(html2)
    print(try doc.text())

} catch let error {
   print(error.localizedDescription)
}

//Kanna
let doc = try? HTML(html: html2, encoding: .utf8)
print(doc?.body?.text ?? "")

//Results
//SwiftSoup
https://www.google.com Yours Sincerely Tony Stark CEO, Stark Industries

//Kanna
https://www.google.comYours SincerelyTony StarkCEO, Stark Industries

理想的结果应该是https://www.google.com\n\nYours Sincerely\nTony Stark\nCEO, Stark Industries之类的,以便看起来像这样:

https://www.google.com 

Yours Sincerely
Tony Stark
CEO, Stark Industries

有人可以替代吗?请注意,我收到的HTML将包含许多不同的结构,因此我将不得不对其进行一般性处理。任何建议,谢谢。

0 个答案:

没有答案