У вас есть фрагмент тела HTML (например, div, содержащий пару тегов p; в отличие от полного HTML документа), который вы хотите проанализировать.
Используйте Jsoup.parseBodyFragment(String html)
method.
String html = "<table><tr><td colspan=\"2\"><div class=\"content-wrapper\"><p><strong><span class=\"CLASS 1 CLASS 2 CLASS 3\">123</span></strong><br /><strong>DATA 1</strong></p></td><td></td><td></td><td></td><td></td></tr></table>";
Document doc = Jsoup.parseBodyFragment(html);
Метод parseBodyFragment
создает пустой документ оболочки и вставляет проанализированный HTML в элемент body. Если бы вы использовали обычный метод Jsoup.parse(String html)
, вы, как правило, получили бы тот же результат, но явная обработка ввода как фрагмента тела гарантирует, что любой бозо HTML, предоставленный пользователем, будет проанализирован в элементе тела.
Синтаксический анализатор будет делать все попытки создать чистый анализ из предоставленного вами HTML, независимо от того, правильно ли сформирован HTML или нет. Он обрабатывает: незакрытые теги (e.g. <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)
неявные теги (e.g. a naked <td>Table data</td> is wrapped into a <table><tr><td>...)
, надежно создающие структуру документа (html, содержащую заголовок и тело и только соответствующие элементы внутри заголовка)
РЕДАКТИРОВАТЬ:
Используя Jsoup.parse ():
String html = "<table><tr><td colspan=\"2\"><div class=\"content-wrapper\"><p><strong><span class=\"CLASS 1 CLASS 2 CLASS 3\">123</span></strong><br /><strong>DATA 1</strong></p></td><td></td><td></td><td></td><td></td></tr></table>";
Document doc = Jsoup.parse(html);
Рабочая демонстрация: https://try.jsoup.org/~EdJSrHl_biDcQkyhL2BLH5ZNnck