Мне нужно взорвать строку, содержащую (недопустимый) HTML, по выбранным тегам - <p>, <ol>, <ul>, <table>, <h1-6>
. Если какие-либо теги являются вложенными, строка должна расширяться только по первому тегу.
Вставленный ввод:
<div id="main">
<h1 id="heading">Heading h1</h1>
<p>
<ol>
<li>abc</li>
<li>def</li>
<li>ghi</li>
</ol>
Lorem ipusm lorem ipsum Lorem ipusm lorem ipsum Lorem ipusm lorem ipsum Lorem ipusm.
</p>
<p>Test test test test test</p>
<ul>
<li>aaa</li>
</ul>
</div>
Ожидаемый результат:
$output[0] = '<div id="wrapp"><h1 id="heading">Heading h1</h1>';
$output[1] = '<p><ol><li>abc</li><li>def</li><li>ghi</li></ol>Lorem ipusm lorem ipsum Lorem ipusm lorem ipsum Lorem ipusm lorem ipsum Lorem ipusm.</p>';
$output[2] = '<p>Test test test test test</p>';
$output[3] = '<ul><li>aaa</li></ul></div>';
Я пробовал несколько библиотек DOM, но ни одна не может то, что мне нужно. Самая большая проблема — это разделенный элемент div#main и вложенные теги (недействительный html). Я ценю любые идеи.