#java #html-parsing #jsoup
#java #html-синтаксический анализ #jsoup
Вопрос:
Я передал содержимое HTML в строку с надписью «Html_content». Мне нужно разобрать строку «Html_content» и выбрать несколько тегов DIV, используя там идентификаторы, скажем, например, «fullHeader» — это идентификатор DIV, мне нужно выбрать содержимое, которое находится внутри тега div «fullHeader», и сохранить его в виде строки.
Я пробовал JSOUP, но мне нужно сохранить собранные теги div внутри документа, но мне нужно сохранить его как строку, но это невозможно с помощью Jsoup, есть ли альтернатива?
Комментарии:
1. Ваш вопрос неясен. Вы хотите ссылаться на
div
элементы из html и помещать их в коллекцию строк?
Ответ №1:
JSoup — это именно то, что вам нужно. Я понял, что вам нужно, чтобы HTML-элементы возвращались вам в виде строки, чтобы вы могли в дальнейшем использовать их для создания другого документа.
предположим, у вас есть объект Element, скажем, ele, извлеченный из HTML.
Теперь напишите
Строка htmlForEle = новый элемент(Tag.valueOf(«div»)).append(элемент.clone()).remove().html();
html для ele — это именно то, что вы ищете.
Ответ №2:
Но мне нужно сохранить это как строку, но это невозможно с помощью Jsoup
Неправильно, у Jsoup есть Element#text()
метод для этого.
String text = element.text(); // <div>foo<b>bar</b></div> will give "foobar"
// ...
Или, если вы хотите включить HTML также в строку, используйте Element.html()
или Element#outerHtml()
, в зависимости от требований.
String html = element.html(); // <div>foo<b>bar</b></div> will give "foo<b>bar</b>"
// ...
или
String html = element.outerHtml(); // <div>foo<b>bar</b></div> will give exact this string
// ...
Комментарии:
1. спасибо, БалусК, ваш ответ мне очень помог, теперь он работает нормально
Ответ №3:
Если вы принудительно преобразуете свой синтаксис HTML в XML, вы можете использовать XPath, SAX, DOM и другие инструменты XML для работы с документом.