Вопрос
Я использую QueryPath, чтобы манипулировать страницами DOM. Страница, которую я управляю, имеет несколько тегов, которые QueryPath не знает, как интерпретировать.
Я пытался пройти следующие варианты, но я все еще получаю ошибки:
lightore_parser_warnings.
use_parser (html)
Я получаю следующие ошибки с этим включенным:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag nobr invalid in Entity
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity
Любая помощь будет очень ценится.
Решение
Попробуйте Функции libxml
libxml_use_internal_errors(TRUE);
$dom->load('whatever'); // or whatever you use for loading the DOM
libxml_clear_errors();
Вместо того, чтобы просто очистить ошибки, вы можете обрабатывать их, хотя вышеприведенное должно быть достаточно для большинства случаев.
Другие советы
Использовать htmlqp()
вместо qp()
. Отказ То htmlqp()
Функция делает значительное количество фиксации для Yucky HTML.
Просто используйте @ перед вашими функциями QueryPath, чтобы подавить предупреждения. Хотя неверный HTML может генерировать предупреждения, он обычно может обрабатывать это просто хорошо.