Ответ 1
Попробуйте Jericho.
Класс TextExtractor звучит так, будто он будет делать то, что вы хотите. Извините, не могу опубликовать 2-ую ссылку, поскольку я новый пользователь, но немного прокрутите страницу вниз и там ссылка на нее.
Вы можете рекомендовать библиотеку Java с открытым исходным кодом (предпочтительно лицензию ASL/BSD/LGPL), которая преобразует HTML в обычный текст - очищает все теги, преобразует объекты (&, , и т.д.) и обрабатывает <br> и таблицы правильно.
Дополнительная информация
У меня есть HTML как строка, нет необходимости извлекать его из Интернета. Кроме того, я ищу метод, подобный этому:
String convertHtmlToPlainText(String html)
Попробуйте Jericho.
Класс TextExtractor звучит так, будто он будет делать то, что вы хотите. Извините, не могу опубликовать 2-ую ссылку, поскольку я новый пользователь, но немного прокрутите страницу вниз и там ссылка на нее.
HtmlUnit, он даже показывает страницу после обработки JavaScript/Ajax.
Механизм bliki может сделать это в два этапа. См. info.bliki.wiki/Главная страница
Это будет 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();
но в результате вы потеряете все форматирование абзаца - не будет никаких строк новой строки.
Я использую TagSoup, он доступен для нескольких языков и делает действительно хорошую работу с HTML, найденным "в дикой природе". Он создает либо очищенную версию HTML или XML, которую вы затем можете обработать с помощью парсера DOM/SAX.
Я использовал Apache Commons Lang, чтобы пойти другим путем. Но похоже, что он может делать то, что вам нужно, StringEscapeUtils.