Как получить результат предварительного просмотра html в виде строки из html элемента с помощью jsoup? - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу получить результат предварительного просмотра HTML из элемента jsoup.Допустим, у меня есть элемент jsoup, имеющий следующий HTML-код:

HTML-код элемента:

<div class="code-container">
<div id="highlighter_245626" class="syntaxhighlighter nogutter   night">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="comments">// C++ program for implementation of FCFS </code></div>
<div class="line number2 index1 alt1"><code class="comments">// scheduling </code></div>
<div class="line number3 index2 alt2"><code class="preprocessor">#include&lt;bits/stdc++.h&gt; </code></div>
<div class="line number4 index3 alt1"><code class="keyword bold">using</code> <code class="keyword bold">namespace</code> <code class="plain">std; </code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div></div>

Строка результата предварительного просмотра HTML:

// C++ program for implementation of FCFS
#include<bits/stdc++.h>
using namespace std;

Я пробовалполучить строку предварительного просмотра HTML с Element.Text () И у меня есть следующие проблемы:

  • Неразбитые окончания строк
  • Нерегулярные расстояния

Есть лилучший способ получить результат предварительного просмотра HTML в виде строки из элемента HTML с помощью jsoup?

1 Ответ

0 голосов
/ 09 декабря 2018

Это сохранит разрывы строк для вас:

public static String cleanPreserveLineBreaks(String bodyHtml) {

    // get pretty printed html with preserved br and p tags
    String prettyPrintedBodyFragment = Jsoup.clean(bodyHtml, "", Whitelist.none().addTags("br", "p"), new OutputSettings().prettyPrint(true));
    // get plain text with preserved line breaks by disabled prettyPrint
    return Jsoup.clean(prettyPrintedBodyFragment, "", Whitelist.none(), new OutputSettings().prettyPrint(false));
}
...