Извлечение фрагментов HTML в Java - PullRequest
0 голосов
/ 05 марта 2012

У меня есть текст, который может содержать HTML-острова.

Пример:

qwwdeadaskdfdaskjfhbsdfkf<a href="/cookbook/modifying-data/set-attributes">Set attribute values</a>gfkjgfkjrgjgjgjgjgroggjrog <b>jsoup</b>sdflkjsdfsfklsfklfjsfkljsfljsf<a href="/apidocs/org/jsoup/Jsoup.html#parse(java.lang.String)" title="Parse HTML into a Document.">Jsoup.parse(String html)</a>skgjdfgkjdfgkldfjgdfkgljdfg

Как извлечь эти фрагменты HTML?

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Я делаю именно то, что вы просите - находите фрагменты HTML в куске текста - оборачивая тег вокруг текста, затем используя java.xml.parsers.DocumentBuilder для создания дерева DOM.1002 * Основная идея (и большая часть опущена) просто

String fragment = "<wrap_node>" + orig_text + "</wrap_node>";
Document d = builder.parse(fragment);

Если теги не правильно сформированы ... отсутствует конец, неправильное вложение и т. Д. ... это не сработает, ноэто работает для меня, потому что я хочу отказаться от всего, что искажено.

0 голосов
/ 05 марта 2012

Java поддерживает синтаксический анализ DOM и SAX для XML, однако они оба требуют, чтобы документ был правильно сформирован. Поэтому ваш пример не будет проанализирован. Существует проект под названием NekoHTML (http://nekohtml.sourceforge.net/), который поддерживает сканирование некорректно сформированного HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...