У меня есть этот код:
$strhtml = file_get_contents('05001400300320100033100.html'); $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById('upPanelActuciones'); print $dochtml->saveXml($elm);
Я получаю это предупреждение:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: error parsing attribute name in Entity, line: 674 in C:\AppServ\www\video01\sector2\dom3.php on line 10 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: div and td in Entity, line: 1019 in C:\AppServ\www\video01\sector2\dom3.php on line 10 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: div and td in Entity, line: 1020 in C:\AppServ\www\video01\sector2\dom3.php on line 10 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: div and td in Entity, line: 1022 in C:\AppServ\www\video01\sector2\dom3.php on line 10
Я не могу манипулировать html (я знаю, что файл html имеет ошибки), поэтому есть способ удалить эти предупреждения? (нет шоу).
Заранее спасибо за вашу помощь.
DOMDocument очень хорошо справляется с несовершенной разметкой, но он бросает предупреждения повсюду, когда это происходит.
Это плохо описано здесь. Решением этого является реализация отдельной части для решения только этих ошибок.
Установите libxml_use_internal_errors (true) перед вызовом loadHTML. Это предотвратит появление ошибок до вашего обработчика ошибок по умолчанию. И вы можете получить их (если хотите), используя другие функции ошибок libxml.
Дополнительную информацию вы можете найти здесь http://www.php.net/manual/en/ref.libxml.php
Правильный способ справиться с ошибками DOMDocument:
<?php // enable user error handling var_dump(libxml_use_internal_errors(true)); // load the document $doc = new DOMDocument; if (!$doc->load('file.xml')) { foreach (libxml_get_errors() as $error) { // handle errors here } libxml_clear_errors(); } ?>