Ответ 1
Как загрузить / проанализировать Document
с помощью Jsoup? Если вы используете parse()
или connect().get()
, jsoup автоматически отформатирует ваш html (вставив теги html
, body
и head
). Это гарантирует, что у вас всегда будет полный HTML-документ, даже если ввод не завершен.
Предположим, что вы хотите только очистить ввод (без дальнейшей обработки), вам следует использовать clean()
вместо предыдущих перечисленных методов.
Пример 1 - Использование parse ()
final String html = "<b>a</b>";
System.out.println(Jsoup.parse(html));
Выход:
<html>
<head></head>
<body>
<b>a</b>
</body>
</html>
Ввод html завершен, чтобы убедиться, что у вас есть полный документ.
Пример 2 - Использование clean ()
final String html = "<b>a</b>";
System.out.println(Jsoup.clean("<b>a</b>", Whitelist.relaxed()));
Выход:
<b>a</b>
Введенный html очищен, не более.
Документация:
Ответ 2
Метод replaceWith()
делает именно то, что вам нужно:
Пример:
final String html = "<b><script>your script here</script></b>";
Document doc = Jsoup.parse(html);
for( Element element : doc.select("script") )
{
element.replaceWith(TextNode.createFromEncoded(element.toString(), null));
}
System.out.println(doc);
Выход:
<html>
<head></head>
<body>
<b><script>your script here</script></b>
</body>
</html>
или только тело :
System.out.println(doc.body().html());
Выход:
<b><script>your script here</script></b>
Документация:
Ответ 3
Да, prettyPrint()
метод Jsoup.OutputSettings
делает это.
Пример:
final String html = "<p>your html here</p>";
Document doc = Jsoup.parse(html);
doc.outputSettings().prettyPrint(false);
System.out.println(doc);
Примечание: , если метод outputSettings()
недоступен, пожалуйста, обновите Jsoup.
Выход:
<html><head></head><body><p>your html here</p></body></html>
Документация
Ответ 4 (без пули)
Нет! Jsoup - одна из лучших и большинства способных HTML-библиотек!