jsoup - strip all formatting and link tags, keep text only
Actually, the correct way to clean with Jsoup is through a Whitelist
...
final String html = "<p> <span> foo </span> <em> bar <a> foobar </a> baz </em> </p>";
Document doc = Jsoup.parse(html);
Whitelist wl = Whitelist.none()
String cleanText = Jsoup.clean(doc.html(), wl)
If you want to still preserve some tags:
Whitelist wl = new Whitelist().relaxed().removeTags("a")
With Jsoup:
final String html = "<p> <span> foo </span> <em> bar <a> foobar </a> baz </em> </p>";
Document doc = Jsoup.parse(html);
System.out.println(doc.text());
Output:
foo bar foobar baz
If you want only the text of p-tag, use this instead of doc.text()
:
doc.select("p").text();
... or only body:
doc.body().text();
Linebreak:
final String html = "<p><strong>Tarthatatlan biztonsági viszonyok</strong></p>"
+ "<p><strong>Tarthatatlan biztonsági viszonyok</strong></p>";
Document doc = Jsoup.parse(html);
for( Element element : doc.select("p") )
{
System.out.println(element.text());
// eg. you can use a StringBuilder and append lines here ...
}
Output:
Tarthatatlan biztonsági viszonyok
Tarthatatlan biztonsági viszonyok
Using Regex: -
String str = "<p> <span> foo </span> <em> bar <a> foobar </a> baz </em> </p>";
str = str.replaceAll("<[^>]*>", "");
System.out.println(str);
OUTPUT: -
foo bar foobar baz
Using Jsoup: -
Document doc = Jsoup.parse(str);
String text = doc.text();