Я пытаюсь загрузить простую строку HTML (которая вне зависимости от HTML-аккуратности) не разрешит доступ к DOMDocument.
Вот пример
$doc = new DOMDocument(/*'1.0', 'utf-8'*/);
$doc->recover = true;
$doc->strictErrorChecking = false;
$doc->formatOutput = true;
$doc->load($content);
$node_array = $doc->getElementsByTagName("body");
print_r( $node_array)
... или$node_array->items(0);
Я получаю:
DOMNodeList Object
(
)
DOMDocument прекрасно возвращает строку с функцией save. Это не ресурс.Может ли отсутствовать зависимости, дополнительные конфигурации PHP ...?
Обновление: В объектах DOMDocument просто не реализованы функции преобразования tostring:
print_r( (string)$node_array );
Объект класса DOMNodeList не может быть преобразован в строку в ....
Код HTML находится здесь: http://pastebin.com/11V92Dup (намеренно искажено - это должно было продемонстрировать в коде, что 'tidy 'правильно закрывает теги)
Я хотел бы просто пройтись по узлам и вывести их содержимое:
$node_array = $doc->getElementsByTagName("html");//parent_node();
$x = $doc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br />";
}
ОБНОВЛЕНИЕ 2: Я получил этот результат!что не имеет смысла.(откуда все пробелы?)
body =
COMPOUND: C05441