DOM: recupera tutti i nodes di text nel documento (PHP)

Ho il seguente codice (PHP) che attraversa un integer documento DOM per get tutti i nodes del text. È una soluzione un po 'brutta, e sono sicuro che ci deve essere un modo migliore … quindi, c'è?

$skip = false; $node = $document; $nodes = arrays(); while ($node) { if ($node->nodeType == 3) { $nodes[] = $node; } if (!$skip && $node->firstChild) { $node = $node->firstChild; } elseif ($node->nextSibling) { $node = $node->nextSibling; $skip = false; } else { $node = $node->parentNode; $skip = true; } } 

Grazie.

L'espressione XPath di cui hai bisogno è //text() . Prova a usarlo con DOMXPath::query . Per esempio:

 $xpath = new DOMXPath($doc); $textnodes = $xpath->query('//text()'); 

Il preg_split functionrà per te?

 $textNodes = preg_split( '/<[^]+>/', $documentContent, -1, PREG_SPLIT_NO_EMPTY );