Есть ли способ получить массив всех текстовых узлов из строки HTML? Я хотел бы, чтобы он извлекал «вложенные» элементы независимо, поэтому такая строка:
<p>This is a <b>nested <i>HTML</i> tag<b>...</p>
будут получены как This is a
, nested
, HTML
, tag
и ...
как отдельные элементы.
Поиск в Google и поиск SO привели меня к тому, что я собрал воедино этот беспорядок кода:
$doc = new DOMDocument();
$doc->loadHTML($contents);
$doc->loadHTML("<p>not in the brackets..</p>");
$xpath = new DOMXPath($doc);
$textnodes = $xpath->evaluate('//text()');
echo '<pre>'.print_r($textnodes,1).'</pre>';die;
Это дает мне:
DOMNodeList Object
(
)
Я никогда раньше не использовал какие-либо объекты DOM - и мой XPath не очень хорош - поэтому я чувствую себя здесь очень не в своей тарелке! Любая помощь будет оценена по достоинству.