Удаление текста, заключенного между тегами HTML, с помощью JSoup - PullRequest
5 голосов
/ 19 июля 2011

В некоторых случаях при очистке HTML я хотел бы сохранить текст, заключенный между тегами (это поведение Jsoup по умолчанию), а в некоторых случаях я хотел бы удалить текст, а также теги HTML. Может кто-нибудь пролить свет на то, как я могу удалить текст, заключенный между тегами HTML, используя Jsoup?

Ответы [ 2 ]

11 голосов
/ 19 июля 2011

Cleaner всегда будет сбрасывать теги и сохранять текст.Если вам нужно удалить элементы (т. Е. Теги и текстовые / вложенные элементы), вы можете предварительно проанализировать HTML-код, удалить элементы с помощью remove() или empty(), затемпропустите полученный результат через очиститель.

Например:

String html = "Clean <div>Text dropped</div>";
Document doc = Jsoup.parse(html);
doc.select("div").remove();
// if not removed, the cleaner will drop the <div> but leave the inner text
String clean = Jsoup.clean(doc.body().html(), Whitelist.basic());
0 голосов
/ 03 сентября 2014
1.     String html = "<!DOCTYPE html><html><head><title></title></head><body><p>hello there</p></body></html>";
2.      Document d = Jsoup.parse(html);
3.      System.out.println(d);
4.      System.out.println("************************************************");
5.      d.getElementsByTag("p").remove();
6.      System.out.println(d);

Когда вы получаете с Elements, у вас возникают проблемы, вы можете выполнить это действие на объекте Document d. это будет работать точно.

...