Веду базу статей с форматированием HTML. К сожалению, редакторы, которые писали статьи, не знали правильного HTML, поэтому они часто писали такие вещи, как:
<div class="highlight"><html><head></head><body><p>Note that...</p></html></div>
Я попытался использовать HTML::TreeBuilder
для синтаксического анализа этого HTML, но после его синтаксического анализа и дампа результирующего дерева все элементы между <div class="highlight">...</div>
исчезли. У меня осталось только <div class="highlight"></div>
.
Редакторы также часто делали такие вещи, как:
<div class="article"><style>@font-face { font-family: "Cambria"; }</style>Article starts here</div>
Разбор этого с помощью HTML::TreeBuilder
снова приводит к пустому <div class="article"></div>
.
Любые идеи, как подойти к этому сломанному HTML и на самом деле понять его смысл?