我正在使用QueryPath来操作页面DOM。我正在操作的页面有一些标记,QueryPath不知道如何解释。
我已尝试将以下内容作为选项传递,但仍然出现错误:
ignore_parser_warnings
use_parser(html)
启用这些错误后会出现以下错误:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag nobr invalid in Entity
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity
非常感谢任何帮助。
答案 0 :(得分:7)
使用htmlqp()
代替qp()
。 htmlqp()
函数对于令人讨厌的HTML进行了大量修复。
答案 1 :(得分:2)
libxml_use_internal_errors(TRUE);
$dom->load('whatever'); // or whatever you use for loading the DOM
libxml_clear_errors();
您可以选择处理它们,而不仅仅是清除错误,尽管上述情况应该足以满足大多数情况。
答案 2 :(得分:-1)
只需在QueryPath函数前面使用@来抑制警告。虽然无效的HTML可能会生成警告,但它通常可以很好地处理它。