有没有一种函数可以将HTML转换为纯文本?

10

是否有一个“咕泡”(hocus-pocus)函数适用于 Android 可以将 HTML 转换成纯文本?

我指的是类似于 Internet Explorer、Firefox 等浏览器中的剪贴板转换操作的函数:如果你选择浏览器中渲染的所有 HTML,并将其复制/粘贴到文本编辑器中,你将收到(大部分)文本,而没有任何 HTML 标记或头信息。

在一个类似的主题中,我看到了对html2text 的引用,但它是用 Python 编写的。我正在寻找一个适用于 Android/Java 的函数。

是否有这样的功能可用,还是我必须自己使用 Jsoup 或 Jtidy 进行处理?


使用这个就可以了,它能正常工作 :) --------------------------------------- http://www.codecodex.com/wiki/Convert_HTML_to_plain_text 它可以将文本/HTML转换为纯文本。 - Sudharshan Acharia
2个回答

20

我会尝试类似于以下的代码:

String html = "<b>hola</b>";
String plain = Html.fromHtml(html).toString();

谢谢,它移除了HTML标签,但仍包含页面中的所有响应头和JavaScript代码...我正在寻找我上面描述的“剪贴板文本”功能。 - Regex Rookie
这不是API中提供的内容。它是Web浏览器的私有实现...您可以查看其源代码以了解其实现方式。 - Cristian
Jsoup怎么样?https://dev59.com/UXVC5IYBdhLWcg3wnCaA - Regex Rookie
不错啊,伙计……我没听说过。 - Cristian
事实证明,Html类本身使用了一种名为TagSoup的Jsoup变体。 - Regex Rookie
HTML类是android.text.Html对吗?(参见:https://dev59.com/UXVC5IYBdhLWcg3wnCaA#6385950) - KajMagnus

0
使用JSOUP:
String plain = new HtmlToPlainText().getPlainText(Jsoup.parse(html));

没有JSOUP:

String html= "htmltext";
String newHtml = html.replaceAll("(?s)<[^>]*>(\\s*<[^>]*>)*", " ").trim();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接