php中的不规则DOM解析



php中的DOM解析只有在HTML被完美标记的情况下才能工作。我需要解析html,这不是一个完美的DOM。这个HTML来自远程服务器,所以我不能更改它。

<html>
 <body>
  <table>
   <tr>
    <td>
    1
    </td>
    <td>
    2
    </td></td>
   </tr>
</table>
当我用这个结构解析HTML时,它给出了一个错误。Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : td in Entity, line: 173 in C:wampwwwxxxxxx on line 51

工具,如tidy应该能够修复HTML,以便您可以在DOM中使用它。

$html = "<html>
 <body>
  <table>
   <tr>
    <td>
    1
    </td>
    <td>
    2
    </td></td>
   </tr>
</table>";
$tidy = tidy_parse_string($html);
$html = $tidy->html();
$cleanHTML = $html->value;
$doc = new DomDocument();
$doc-> loadhtml($cleanHTML);
注意:Tidy不是PHP自带的,你必须安装扩展才能使用
函数

最新更新