Разбор строки и сбор HTML-элементов с разными идентификаторами

#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 для работы с документом.