Синтаксический анализ XML/HTML с искаженным форматом

Мне нужно разобрать несколько (читать около 1600) HTML-страниц и вытащить содержимое следующего тега из каждого файла.

    textarea name="line" cols="66" rows="5" class="textbox" id="line" style="font-size:12px;" onkeydown="textCounter()" onkeyup="textCounter(); storeCaret(this);" onselect="storeCaret(this);" onclick="storeCaret(this);">TEXT I WANT IS HERE

(на самом деле это тег текстовой области html). Я думал, что смогу использовать DOMparser, но файлы содержат слишком много ошибок, и поэтому я наткнулся на JTidy из другого вопроса здесь, в stackoverflow, и я попытался использовать это. ..

Но это, похоже, не может преобразовать html с любой из страниц в XHTML, поэтому я могу использовать анализатор DOM.

Затем я подумал, что могу использовать регулярное выражение, но я не мог найти конкретное выражение, необходимое для извлечения этого текста, а также я наткнулся на несколько вопросов/ответов, в которых говорилось НЕ использовать регулярное выражение для анализа HTML...

Итак, по сути, мой вопрос: есть ли другой подход, чтобы получить нужный мне текст из искаженного html?


person John McDonnell    schedule 26.08.2011    source источник


Ответы (1)


Вы должны иметь возможность анализировать свои документы с помощью JTidy напрямую, без необходимости конвертировать их в XHTML. Я делал это несколько раз, правда некоторое время назад, но у меня это работало нормально и с довольно уродливым HTML.

РЕДАКТИРОВАТЬ: Другой вариант, на который я обращал внимание в прошлый раз, когда мне нужно было анализировать HTML-файлы, — это TagSoup. Я не мог использовать его в коммерческом продукте из-за его лицензии GPL, но если вам просто нужна эта функциональность в качестве внутреннего инструмента, она может вам подойти.

person Olaf    schedule 26.08.2011
comment
Я собираюсь принять это как ответ, так как я думаю, что TagSoup - это то, что нужно, хотя я не смог заставить его работать. Мне удалось решить мою проблему, вернувшись к использованию регулярных выражений, и я нашел шаблон, который работает для меня... - person John McDonnell; 28.08.2011