Предположим, у вас есть DOMDocument здесь:
$doc = new DOMDocument();
$doc->loadHTMLFile('http://stackoverflow.com/');
Вы можете найти все текстовые узлы, используя простой Xpath.
$xpath = new DOMXpath($doc);
$textNodes = $xpath->query('//text()');
Просто foreach
над ним, чтобы перебрать все текстовые узлы:
foreach ($textNodes as $textNode) {
echo $textNode->data . "\n";
}
С этого момента вы можете перейти к дереву DOM, используя ->parentNode
.
Надеюсь, что это может дать вам хорошее начало.