У меня есть структура, которая выглядит следующим образом:
<h3><span class="header" id="first_set">My Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<h3><span class="header" id="second_set">My Second Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<h3><span class="header" id="third_set">My Third Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
Я извлек это из веб-страницы, используя DOMDocument .Мне нужно перебрать 9000 страниц, которые имеют небольшие различия в них.Таким образом, «третий заголовок» может фактически быть таблицей в некоторых случаях вместо другого h3.
То, что я пытаюсь сделать точно, - это обернуть div вокруг второго заголовка и закрыть div, когда он больше не находит</ul>
тегов (так что пока не попадет что-либо, что не является тегом ul ).Таким образом, результат будет примерно таким:
<h3><span class="header" id="first_set">My Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<div class="second_heading">
<h3><span class="header" id="second_set">My Second Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
</div>
<h3><span class="header" id="third_set">My Third Heading</span></h3>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
<ul><li>Text Text Text</li></ul>
Я думаю preg_replace
, но не уверен, как сделать логику "close div, когда найден последний закрывающий тег ul".