Подтвердить что ты не робот

Java-библиотека с открытым исходным кодом для преобразования текста в HTML

Вы можете рекомендовать библиотеку Java с открытым исходным кодом (предпочтительно лицензию ASL/BSD/LGPL), которая преобразует HTML в обычный текст - очищает все теги, преобразует объекты (&,  , и т.д.) и обрабатывает <br> и таблицы правильно.

Дополнительная информация

У меня есть HTML как строка, нет необходимости извлекать его из Интернета. Кроме того, я ищу метод, подобный этому:

String convertHtmlToPlainText(String html)
4b9b3361

Ответ 1

Попробуйте Jericho.

Класс TextExtractor звучит так, будто он будет делать то, что вы хотите. Извините, не могу опубликовать 2-ую ссылку, поскольку я новый пользователь, но немного прокрутите страницу вниз и там ссылка на нее.

Ответ 2

HtmlUnit, он даже показывает страницу после обработки JavaScript/Ajax.

Ответ 3

Механизм bliki может сделать это в два этапа. См. info.bliki.wiki/Главная страница

  • Как преобразовать HTML в текст Mediawiki - текст nediawiki - это довольно простой текстовый формат, но вы можете преобразовать его дальше
  • Как конвертировать текст Mediawiki в обычный текст - ваша цель.

Это будет 7-8 строк кода, например:

// html to wiki
import info.bliki.html.HTML2WikiConverter;
import info.bliki.html.wikipedia.ToWikipedia;
// wiki to plain text
import info.bliki.wiki.filter.PlainTextConverter;
import info.bliki.wiki.model.WikiModel;
...
String sbodyhtml = readFile( infilepath ); //get content as string
  HTML2WikiConverter conv = new HTML2WikiConverter();
  conv.setInputHTML( sbodyhtml );
String resultwiki = conv.toWiki(new ToWikipedia());
  WikiModel wikiModel = new WikiModel("${image}", "${title}");
String plainStr = wikiModel.render(new PlainTextConverter(false), resultwiki );
System.out.println( plainStr );

Jsoup может сделать это проще:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
...
Document doc = Jsoup.parse(sbodyhtml);
String plainStr = doc.body().text();

но в результате вы потеряете все форматирование абзаца - не будет никаких строк новой строки.

Ответ 4

Я использую TagSoup, он доступен для нескольких языков и делает действительно хорошую работу с HTML, найденным "в дикой природе". Он создает либо очищенную версию HTML или XML, которую вы затем можете обработать с помощью парсера DOM/SAX.

Ответ 5

Я использовал Apache Commons Lang, чтобы пойти другим путем. Но похоже, что он может делать то, что вам нужно, StringEscapeUtils.