Я следую предложению из этого вопроса. Надежно, Зрелый HTML-парсер для PHP, о разборе html, который может быть искажен DOMDocument.
Есть ли простой способ перебрать анализируемый документ? Поэтому я хотел бы перебрать html таким образом.
$html='<ul>
<li>value1</li>
<li>value1</li>
<li>value3
<p>subvalue</p>
</li>
</ul>
<p>hello world</p>';
$doc = new DOMDocument();
$doc->loadHTML($html);
???
foreach (??? as $node)
{
print $node->nodeName.':'.$node->nodeValue;
}
И получите несколько результатов.
ul:
li:value1
li:value2
li:value3
p:subvalue
p:hello world
Использование $doc->childNodes
само по себе не делает то, что я хочу. Так как это не похоже на нижние ветки дерева. Я использовал код, предложенный halfdan, и я получаю такие результаты.
html:
html:value1
value1
value3
subvalue
hello world