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();

Tags:

Html

Java

Jsoup