2014-10-21 2 views
0

При получении содержания сообщения на форуме у меня возникают проблемы с получением текста, который отображается HTML. Используя org.jsoup.nodes.Document и getElementsByClass я могу получить следующий фрагмент:Получение сообщений в форуме

<html> 
    <head> 

    </head> 
    <body> 
    <div class="entry-content"> 
     <div> 
     <div> 
      <div align="center"> 
      Some text...<br>continued in 2nd line<br> and third line. This is <b>bold</b>. 
      </div> 
      <br> 


      <div align="center"> 
      Also, here's a link: 
      </div> 
      <div align="center"> 
      <a href="http://www.google.com/" target="_blank" rel="nofollow">http://www.google.com/</a> 
      </div> 
     </div> 
     <div class="clear"> 

     </div> 
     </div> 
    </div> 
    </body> 
</html> 

Оклейка это в онлайн-компилятор HTML я получить следующее:

Если я копирую обработанную форму I» Получите:

Some text... 
continued in 2nd line 
and third line. This is bold. 

Also, here's a link: 
http://www.google.com/ 

Это именно то, что мне нужно. Я пробовал использовать визуализатор JEditorPane, но он удаляет br разрывы строк. Кроме того, он добавляет 1 или 2 ненужных пустых строки внизу.

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

Edit: Java-код

String htmlPageSource = "..."; 
Document document = Jsoup.parse(htmlPageSource); 
String firstPostHtmlCode = getFirstPostHtmlCode(); 
System.out.println(firstPostHtmlCode); 

public String getFirstPostHtmlCode() 
{ 
    Elements userPosts = document.getElementsByClass("entry-content"); 
    Element firstPost = userPosts.get(0); 

    return firstPost.toString(); 
} 

ответ

0

Любой шанс, что вы могли бы разместить код, который вы используете? Вы можете попробовать выполнить string.replace() и заменить теги 'br' на \ n.

Или вы можете просто сохранить HTML-теги, а Java распознает теги
. Просто заключите текст в HTML-теги:

string x = "<html>" + yourHTML + "</html>"; 

Не уверен, что пустые строки в нижней части, не видя кода.

+0

Код уже заключен в теги '' и заменяет теги '
' '' \ n''s как удаленные разрывы строк. Механизм рендеринга http://cssbox.sourceforge.net/swingbox/ тоже плох, но http://www.compileonline.com/try_html5_online.php отлично. – BullyWiiPlaza

+0

Код окружен тегами ' на веб-странице, но вы только захватываете все в классе «entry-content». Вам нужно добавить теги обратно, чтобы Java почитал HTML-код в строке. – barna10

+0

Это не имеет значения. Я попробовал. Кроме того, извлечение «html» из «JEditorPane» снова показывает, что теги «html» добавляются автоматически, так как я указал, что вход является кодом 'html', используя' setContentType («text/html») '. – BullyWiiPlaza

Смежные вопросы