Swift: парсинг HTML и сохранение новых строк - PullRequest
0 голосов
/ 14 марта 2019

Мне дан следующий HTML-код, и мне нужно разобрать его в обычный текст.Я пытался использовать HTML-парсеры, такие как SwiftSoup и Kanna, но оба дают мне несколько не совсем идеальные результаты, то есть строки разрыва не сохраняются должным образом.

//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-код, который я получу, будет включать в себя множество различных структур, поэтому мне придется обратиться к нему в общем.Любые советы, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...